我有这个选择声明:
$select = $someMapper->getDbTable()
->select()
->where('someid = ?', $id)
->order(array($sort.' '.$order));
然而,我想要做的只是搜索campid IF $ id。我目前正在重复查询而没有找到适合我的地方。希望有更抽象的方式来做到这一点。
我是否仅限于自己构建sql?
谢谢!
编辑:我的新查询..
$select = $hitsMapper->getDbTable()
->select()
->where('campid = ? or 0 = ?', $id, $id)
->where('? LIKE ? or 0 = ?', $searchRow, $search, $search)
->order(array($sort.' '.$order));
第一个工作正常,但第二个没有。 $ searchRow和$ search分别默认为“ID”和“0”。
答案 0 :(得分:0)
$select = $someMapper->getDbTable()
->select()
->where('someid = ? or 0 = ?', $id, $id)
->order(array($sort.' '.$order));
如果id == 0
那么你将得到所有结果,我想你想要这个。我不确定我在zend中的实现语法然后如果失败你可以自由编辑我的答案。