Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择性地将WHERE子句中的用户ID应用于条目_Php_Mysql - Fatal编程技术网

Php 选择性地将WHERE子句中的用户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

我一直在反复使用IF和CASE以及其他许多建议,试图找出如何根据类别和用户ID筛选出某些条目。假设一个表
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')
-这似乎是我想要的。