数组内的SQL LIKE%
我知道如何对单个值执行SQL LIKE%查询,如下所示:
SELECT * FROM users WHERE name LIKE %tom%;
但是,如果LIKE的搜索字词来自数组,该怎么办?例如,假设我们有一个像这样的数组:
$words = array("Tom", "Smith", "Larry");
如何执行我的SQL LIKE%来搜索数组中的单词,例如:
SELECT * FROM users WHERE name LIKE %[each_element_from_my_array]%
无需将整个查询放在foreach循环之内
:我忘了提到我在cakePHP find(’all’)方法的条件下在cakePHP中执行此操作,因此使事情变得有些复杂。
谢谢
回答:
$sql = array('0'); // Stop errors when $words is emptyforeach($words as $word){
$sql[] = 'name LIKE %'.$word.'%'
}
$sql = 'SELECT * FROM users WHERE '.implode(" OR ", $sql);
编辑:CakePHP的代码:
foreach($words as $word){ $sql[] = array('Model.name LIKE' => '%'.$word.'%');
}
$this->Model->find('all', array(
'conditions' => array(
'OR' => $sql
)
));
阅读以下内容:http : //book.cakephp.org/1.3/en/view/1030/Complex-Find-
Conditions
以上是 数组内的SQL LIKE% 的全部内容, 来源链接: utcz.com/qa/432552.html