0 レビュー
3 回答
php-Codeigniter-クエリの条件
私の質問:
$CI->db->select('UserID, Email, Alias, Status, Age');
$CI->db->from('Users');
$CI->db->where('Status', 'Available');
$query = $CI->db->get();
$result = $query->result();
//next comes a function that sends $result to the client app
これで機能しますが、年齢が18未満のレコードの場合、この値がユーザーに送信されないように、[エイリアス]フィールドを空にします。
MySQLクエリでこれを実現するにはどうすればよいですか?
もちろん、PHPのforeachループを使用して実行することもできますが、操作時間のコストがかかるため、これは避けたいと思います(MySQLクエリの方がはるかに高速です)。
わからない
0
レビュー
答え :
解決策:
codeigniterでは次のように実行されます...
$where=array('Age <'=>'18',
'Status'=>'Available');
$this->db->where($where);
$this->db->from('Users');
$query = $this->db->get();
if($query->num_rows()>0)
{
return $query->result_array();
}
else
return FALSE;
わからない
0
レビュー
答え :
解決策:
SQLのMysql条件を使用してこの問題を修正できます:
クエリは次のようになります:
SELECT UserID, Email, IF(Age<18, Alias, "") as Alias, Status, Age FROM Users Where Status='Available';
CIでクエリを次のように実装できます:
$CI->db->select('UserID, Email, IF(Age<18, Alias, "") as Alias, Status, Age');
$CI->db->from('Users');
$CI->db->where('Status', 'Available');
$query = $CI->db->get();
$result = $query->result();
わからない
0
レビュー
答え :
解決策:
$CI->db->select('UserID, Email, if(Age < 18) as Alias, Status, Age');
$CI->db->from('Users');
$CI->db->where('Status', 'Available');
$query = $CI->db->get();
$result = $query->result();
または、次のようなクエリを作成することもできます:
$query=$this->db->query("select UserID, Email,if(Age < 18) as Alias, Status, Age from users where status='Available'");
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。