数组内的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 empty

foreach($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

回到顶部