有没有办法做这样的事情:
SELECT * FROM table WHERE p1=1 AND p2=2 AND ( p3 like %string1% OR p3 like %string3% )
Zend Framework 1中的Zend_Db_Select还是别的什么?
答案 0 :(得分:1)
不确定如何使用Zend_Db_Select进行这样复杂的嵌套查询,但您可以编写可以考虑手动编写查询,如下所示 -
$sql = 'SELECT * FROM table WHERE p1 = ? AND p2 = ? AND (p3 LIKE ? OR p3 LIKE ?)';
$db->fetchAll($sql, [$p1, $p2, "%{$p3}%", "%{$p4}%"]);
答案 1 :(得分:1)
您应该使用Zend_Db_Statement,它为获取结果集提供了灵活的选项。您可以使用:
$stmt = $db->query(
'SELECT * FROM table WHERE p1 = ? AND p2 = ? AND (p3 LIKE ? OR p3 LIKE ?',
array('1', '2', '%string1%', '%string3%')
);