我在从包含键/值对的表中选择数据时遇到了很多问题。
我发现了一些与我的问题类似的问题,但不幸的是,我什至找不到解决方案。
Need a MySQL query for selecting from a table storing key value pairs
How to select data from a key value pair table
无论如何,假设这是我的 table :
user_id | item_id | item_amount
--------------------------------
1 | 12 | 5
1 | 15 | 10
2 | 12 | 20
2 | 15 | 30
3 | 12 | 1
3 | 30 | 5
现在,我想执行搜索以选择拥有 5 到 50 个 ID 为 12 和 15 的项目的用户。
我正在(非常天真地)尝试类似的东西
SELECT user_id
FROM user_item
WHERE (item_id = 12 AND item_amount BETWEEN 5 AND 50)
AND (item_id = 15 AND item_amount BETWEEN 5 AND 50)
当然,这是行不通的。感谢您的任何反馈。
最佳答案
你很接近:
SELECT user_id
FROM user_item
WHERE (item_id = 12 AND item_amount BETWEEN 5 AND 50) OR
(item_id = 15 AND item_amount BETWEEN 5 AND 50)
GROUP BY user_id
HAVING COUNT(DISTINCT item_id) = 2;
WHERE
子句过滤到任一条件匹配的行。 HAVING
保证两个条件都匹配给定用户。
关于php - MySQL 从键/值对表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48532673/