你可以试试这样一个查询:
select product_option_id, product_option_value_id, min(quantity)
from product_option_value
where (product_option_id = 230 and product_option_value_id = 43)
or (product_option_id = 228 and product_option_value_id = 49)
group by product_option_id, product_option_value_id;
在实践中:
> create table product_option_value(product_option_id int, product_option_value_id int, quantity int);
> insert into product_option_value values
> (230, 43, 2),
> (230, 32, 1),
> (228, 49, 1),
> (228, 50, 0),
> (229, 50, 1),
> (229, 49, 1),
> (230, 43, 8),
> (230, 32, 9),
> (228, 49, 11),
> (228, 50, 10),
> (229, 50, 5),
> (229, 49, 4);
> select product_option_id, product_option_value_id, min(quantity)
> from product_option_value
> where (product_option_id = 230 and product_option_value_id = 43)
> or (product_option_id = 228 and product_option_value_id = 49)
> group by product_option_id, product_option_value_id;
+-------------------+-------------------------+---------------+
| product_option_id | product_option_value_id | min(quantity) |
+-------------------+-------------------------+---------------+
| 228 | 49 | 1 |
| 230 | 43 | 2 |
+-------------------+-------------------------+---------------+
你也应该适当地引用查询参数。使用像...product_option_id=".$key."...
这样的结构(摘自你评论中的例子)很容易出错,因为$key
可能包含任何东西,如Little Boby Tables。
编辑:为了得到所有这些群体的最低限度,你刚落,由小组和分组列,就像这样:
> select min(quantity)
> from product_option_value
> where (product_option_id = 230 and product_option_value_id = 43)
> or (product_option_id = 228 and product_option_value_id = 49);
+---------------+
| min(quantity) |
+---------------+
| 1 |
+---------------+
[标准化您的数据(http://stackoverflow.com/a/32620163) – Drew
以下代码基于我的个人情况:'SELECT quantity FROM“。DB_PREFIX。”product_option_value WHERE product_option_id =“。$ key”。 AND product_option_value_id =“。$ value”。 AND subtract = 1“'我在PHP for循环中对所有的值对运行这个函数,我存储了量化值,并且通过PHP获得了最少的一个值 – user3980196
将来,使用编辑链接来包含关于你的问题的额外信息。没有人可以在评论中阅读代码 – RiggsFolly