Php 选择性地将WHERE子句中的用户ID应用于条目
我一直在反复使用IF和CASE以及其他许多建议,试图找出如何根据类别和用户ID筛选出某些条目。假设一个表Php 选择性地将WHERE子句中的用户ID应用于条目,php,mysql,Php,Mysql,我一直在反复使用IF和CASE以及其他许多建议,试图找出如何根据类别和用户ID筛选出某些条目。假设一个表user\u posts包含许多用户的帖子。我想获得的结果仅限于“CAT_64”或“CAT_106”类别中的帖子的用户ID='MIRA76'。但是,我仍然希望从其他类别中获得其他用户的结果 表user\u posts +----------+--------------+----------+-----------------+ | post_ID | category_ID | user
user\u posts
包含许多用户的帖子。我想获得的结果仅限于“CAT_64”或“CAT_106”类别中的帖子的用户ID
='MIRA76'。但是,我仍然希望从其他类别中获得其他用户的结果
表user\u 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”,仅采用
用户ID
“MIRA76”的条目,但对于其他类别,没有此类限制。我该怎么做呢?这里,除了第一个以外的那些是理想的结果。您可以使用WHERE
函数来限制查询结果文档
所以你可以用
WHERE user_ID='MIRA76' AND (category_id = 'CAT_64' OR category_id = 'CAT_106')
您在这里有几个选项: 您可以将其拆分为两个查询-并连接输出,例如选择受限用户id,然后与其他查询结果合并(可能不包括以前选择的结果) 或 您可以考虑在WHERE子句中使用条件语句,例如CASE、OR和 如果你发布你已经尝试过的代码,也许我可以更具体一点来帮助你
SELECT *
FROM user_posts
WHERE (user_ID = 'MIRA76' AND category_ID IN('CAT_64','CAT_106'))
OR user_ID != 'MIRA76'
更新
既然我已经非常仔细地阅读了你的帖子,并且也应用了一个假设,那么你似乎不希望看到其他用户的帖子出现在CAT_64
和CAT_106
中。是这样吗?如果是,请尝试此查询
SELECT *
FROM user_posts
WHERE (user_ID = 'MIRA76' AND category_ID IN('CAT_64','CAT_106'))
OR (user_ID != 'MIRA76' AND category_ID NOT IN('CAT_64','CAT_106'))
4个答案在我还在写的时候出现了,我需要键入你认为正确的快捷键,在看到你的帖子后,我决定使用
WHERE category_ID IN('CAT_64','CAT_106')和user_ID='MIRA76'或category_ID NOT IN('CAT_64','CAT_106')
-这似乎是我想要的。