我有一个表 - 我们称之为表属性:
id |颜色|大小
1 |红色| →
2 |红色| XL
3 |蓝色| →
4 |蓝色| XL ...
现在我有一个看起来像这样的数组:
$parameters[0] = array('red', 'L');
$parameters[1] = array('red', 'XL');
$parameters[2] = array('blue', 'L');
如果我想让结果如下所示,我在RAW-SQL中的查询结果如何:
$result = array(1,2,3);
答案 0 :(得分:1)
SELECT id FROM attributes
WHERE (color = 'red' AND size = 'L')
OR (color = 'red' AND size = 'XL')
OR (color = 'blue' AND size = 'L');
RAW-SQL解决您的问题。现在你可以根据需要进行php实现了!
答案 1 :(得分:1)
如果使用PDO这样的话应该有用。
$parameters[0] = array('red', 'L');
$parameters[1] = array('red', 'XL');
$parameters[2] = array('blue', 'L');
$where = '';
foreach($parameters as $param) {
$where[] = '(color = ? and size = ?)';
$params[] = $param[0];
$params[] = $param[1];
}
$where = implode(' or ', $where);
将$where
附加到您的查询中,然后将$params
与execute
一起使用。