我有这张桌子:
+------+----------+-------------+
| id | category | category_id |
+------+----------+-------------+
| 1 | 2 | 12 |
| 2 | 1 | 12 |
| 3 | 3 | 54 |
| 4 | 3 | 17 |
| 5 | 2 | 14 |
+------+----------+-------------+
我需要得到以下内容:
当category = 2时:category_id!= 12
即
+------+----------+-------------+
| id | category | category_id |
+------+----------+-------------+
| 2 | 1 | 12 |
| 3 | 3 | 54 |
| 4 | 3 | 17 |
| 5 | 2 | 14 |
+------+----------+-------------+
此代码不起作用:
SELECT * FROM `table` WHERE `category`!=2 AND `category_id`!=12
答案 0 :(得分:0)
我想你想要OR
:
select *
from `table`
where `category` != 2
or `category_id` != 12
根据De Morgan's law,与:
相同select *
from `table`
where not (
`category` = 2
and `category_id` = 12
)
读取 - 获取所有行,除非类别为2且category_id为一行中的12