查询计数((数组)$ test)> 1作为参数

时间:2017-05-19 12:09:55

标签: php mysql

我有一个表 - 我们称之为表属性:

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);

2 个答案:

答案 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附加到您的查询中,然后将$paramsexecute一起使用。

演示:https://eval.in/801247