试图排除某些用户
SQL 新手,但我试图找到titles“蓝色”和“黑色”字样的位置。但是,它们不能来自 ID 为 1 和 5 的用户。这就是我所做的:
SELECT title, id_card
FROM site
WHERE (title LIKE "%blue%" OR title LIKE "%black%")
AND (id_card != 1 OR id_card != 5)
ORDER BY id_card ASC;
但是,当我添加 id 1 和 id 5 不应该在查询中时,它会显示如下内容:
| 博客标题 | 用户 |
|---|---|
| 今天的蓝天真好 | 1 |
| 黑色是我最喜欢的颜色 | 2 |
| 我感觉很蓝 | 2 |
| 她穿着黑色 | 3 |
但是,当我id_card != 5从代码中擦除时,它工作得很好。
| 博客标题 | 用户 |
|---|---|
| 黑色是我最喜欢的颜色 | 2 |
| 我感觉很蓝 | 2 |
| 她穿着黑色 | 3 |
我只是想知道我哪里出错了以及如何解决这个问题。先感谢您!
回答
你走在正确的轨道上。但是使用not in正确的逻辑:
SELECT title, id_card
FROM site
WHERE (title LIKE '%blue%' OR title LIKE '%black%') AND
id_card NOT IN (1, 5)
ORDER BY id ASC;
您还可以使用AND.