我正在使用以下查询,将所有内容转换为字符串
$idsv =$_GET['ids'];
$ids=$db->value($idsv, 'string');
$search = $this->Search->query("select * from colleges where college_id!='' and college_id in ($ids) ");
上面的代码对于单个字符串工作正常,但是如果$ idsv = 1,2,3,4它的给定结果仅为1
答案 0 :(得分:1)
你需要它如下: -
$idsv =$_GET['ids'];
$ids=$db->value($idsv, 'string');
$ids = "'".implode("','",explode(',',$ids))."'";
$search = $this->Search->query("select * from colleges where college_id!='' and college_id in ($ids) ")
输出: - https://eval.in/716469
注意: - IN
查询可以完美地用于('1','2','3',...)
,但只需要第一个查询: - ('1,2,3,4')
。
这就是为什么它在你的情况下失败的确切原因。
您在评论中显示的内容如下: -
$idsv =$_GET['ids'];
$ids=$db->value($idsv, 'string');
$ids = implode("','",explode(',',$ids));
$search = $this->Search->query("select * from colleges where college_id!='' and college_id in ($ids) ")