如何使用Zend_Db_Select创建WHERE IN子句

xel*_*urg 65 zend-framework zend-db

所以我试图完成这样的事情:

SELECT * FROM table WHERE status_id IN (1,3,4);
Run Code Online (Sandbox Code Playgroud)

使用Zend_Db_Select ...找不到怎么做:(它是否可能?

Mar*_*zus 168

你也可以像这样使用它:

$data = array(1,3,4);
$select->where('status_id IN(?)', $data);
Run Code Online (Sandbox Code Playgroud)

你不需要破坏阵列,它更安全

  • 谷歌搜索这个问题,找到了你的解决方案 - 然后意识到我已经投了一次.所以,既然我不能再次投票给你,请将此评论作为我的感谢之词! (12认同)

klo*_*oma 11

第一个答案可能适用于ZF1,但它在Zend Framework 2中不起作用:

$data = array(1,3,4);
$select->where('status_id IN(?)', $data);
Run Code Online (Sandbox Code Playgroud)

如果Zend Framework2我发现你必须使用:

$data = array(1,3,4);
$select->where(array('status_id' => $data));
Run Code Online (Sandbox Code Playgroud)

结果:

WHERE `status_id` IN ('1', '3', '4')
Run Code Online (Sandbox Code Playgroud)

我无法在任何地方找到这个记录!ZF文档通常不是最佳的.


xel*_*urg 8

显然它是超级简单的...愚蠢的我:

$select->where('status_id IN(1,3,4)');
Run Code Online (Sandbox Code Playgroud)

:(