0
我有点卡在多个where
查询。我想在我的Zend\Db\Sql\Select
查询 '翻译' 查询波纹管:Zend Db Sql 选择多个地方(AND和OR之间的组合)
SELECT `users`.*, `users_metas`.*
FROM `users` INNER JOIN `users_metas` ON `users`.`ID` = `users_metas`.`parent_id`
WHERE `role` = 'admin'
AND (
`users`.`username` like '%q_word%'
OR
(`users_metas`.`meta_key` = 'name'
AND
`users_metas`.`meta_value` like '%q_word%')
)
ORDER BY `date_added` ASC
我想是这样的:
$select = new Select();
$select->where(array('role' => 'admin'));
$select->join('users_metas', 'users.ID = users_metas.parent_id');
,但我坚持到这个地方:
AND (
`users`.`username` like '%q_word%'
OR
(`users_metas`.`meta_key` = 'name'
AND
`users_metas`.`meta_value` like '%q_word%')
)
谢谢!
我解决使用'Expresion'查询,像这样的'$哪里= “users.username LIKE“%”。$搜索。“%”或\t(users_metas.meta_key = '名' AND users_metas.meta_value LIKE'%$ search%'))“; $ select-> where(new Expression($ where));'。但如果有其他方法可以做到这一点,我想尝试不同的方式。谢谢! – Andreea