SELECT * FROM abc
WHERE xyz LIKE $x OR xyz LIKE $y OR xyz LIKE $z
ORDER BY ((xyz LIKE $x) + (xyz LIKE $y) + (xyz LIKE $z)) DESC
ほとんどのクエリを作成できますordey by asd descが、この複雑なクエリを codeigniter で作成するにはどうすればよいですか?
SELECT * FROM abc
WHERE xyz LIKE $x OR xyz LIKE $y OR xyz LIKE $z
ORDER BY ((xyz LIKE $x) + (xyz LIKE $y) + (xyz LIKE $z)) DESC
ほとんどのクエリを作成できますordey by asd descが、この複雑なクエリを codeigniter で作成するにはどうすればよいですか?
持っているのと同じようにプレーンSQLで記述し、db->queryメソッドで実行できます。
$sql = 'SELECT * FROM abc
WHERE xyz LIKE ? OR xyz LIKE ? OR xyz LIKE ?
ORDER BY ((xyz LIKE ?) + (xyz LIKE ?) + (xyz LIKE ?)) DESC'
$this->db->query($sql, array($x, $y, $z, $x, $y, $z));
http://codeigniter.com/user_guide/database/queries.htmlクエリ バインディングでは、?
多分あなたはActiveRecordをチェックするべきです:
$this->db->
   from("abc")->
   or_like("xyz",$x)->
   or_like(...)->
   order_by(...);
$result = $this->db->result_array();