このようなことをする方法はありますか?
SELECT * FROM table WHERE p1=1 AND p2=2 AND ( p3 like %string1% OR p3 like %string3% )
Zend Framework 1ではZend_Db_Selectまたは他の何かによって?
回答:
回答№1は1Zend_Db_Selectを使用して複雑なネストされたクエリを実行する方法についてはわかりませんが、以下のように手動でクエリを書くことを検討することはできます。
$sql = "SELECT * FROM table WHERE p1 = ? AND p2 = ? AND (p3 LIKE ? OR p3 LIKE ?)";
$db->fetchAll($sql, [$p1, $p2, "%{$p3}%", "%{$p4}%"]);
回答№2の場合は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%")
);