繁体   English   中英

MySQL从键/值对表中选择

[英]MySQL select from key/value pairs table

从包含键/值对的表中选择数据时遇到很多问题。

我发现了一些类似于我的问题,但不幸的是我甚至都找不到解决方案。

需要MySQL查询以从存储键值对的表中进行选择

如何从键值对表中选择数据

无论如何,让我们假设这是我的表:

user_id | item_id | item_amount
--------------------------------
 1      | 12      | 5
 1      | 15      | 10 
 2      | 12      | 20
 2      | 15      | 30
 3      | 12      | 1
 3      | 30      | 5

现在,我想对SELECT用户进行搜索,这些用户拥有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保证两个条件都匹配给定用户。

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)

这个怎么样?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM