我一直在IF和CASE上来回走动,并在其他地方发现了很多其他建议,试图找出如何根据类别和用户ID过滤掉某些条目。假设表user_posts
包含许多用户发布的帖子。对于类别为“CAT_64”或“CAT_106”的帖子,我希望将结果限制为user_ID
='MIRA76'。但是,我仍然希望其他类别的其他用户获得结果。
表user_posts
+----------+--------------+----------+-----------------+
| post_ID | category_ID | user_ID | content |
+----------+--------------+----------+-----------------+
| 456FQ | CAT_64 | MEK90 | TEXTUAL CONTENT |
| 754GD | CAT_21 | MEK90 | TEXTUAL CONTENT |
| 616CZ | CAT_106 | MIRA76 | TEXTUAL CONTENT |
| 714PA | CAT_64 | MIRA76 | TEXTUAL CONTENT |
| 554WU | CAT_26 | RON32 | TEXTUAL CONTENT |
| 451YD | CAT_41 | RON32 | TEXTUAL CONTENT |
| 783TD | CAT_21 | MIRA76 | TEXTUAL CONTENT |
| 156GL | CAT_11 | MEK90 | TEXTUAL CONTENT |
| 274HD | CAT_11 | HOM92 | TEXTUAL CONTENT |
+----------+--------------+----------+-----------------+
在示例条目中,对于类别“CAT_64”和“CAT_106”,仅采用user_ID
'MIRA76'的类别,但对于其他类别,则没有此类限制。我该怎么做呢?除了第一个以外的那些是理想的结果。
答案 0 :(得分:1)
您可以使用WHERE
功能来限制查询结果文档 here
所以你可以使用像
这样的东西WHERE user_ID='MIRA76' AND (category_id = 'CAT_64' OR category_id = 'CAT_106')
答案 1 :(得分:1)
SELECT *
FROM user_posts
WHERE (user_ID = 'MIRA76' AND category_ID IN('CAT_64','CAT_106'))
OR user_ID != 'MIRA76'
既然我已经仔细阅读了你的帖子非常并且也应用了一个假设,那么你似乎不希望{em>其他用途帖子在{ {1}}和CAT_64
。是对的吗?如果是,则尝试此查询
CAT_106
答案 2 :(得分:0)
你有几个选择:
您可以将其拆分为两个查询 - 并加入输出,例如选择受限制的user_id,然后与其他查询结果(可能不包括之前选择的结果)结合使用。
OR
您可以在WHERE子句中查看使用条件语句,例如: CASE,OR,AND ......
如果你发布了你已经尝试过的代码 - 也许我可以在帮助方面更加具体。