MySQL查询不包含某个值(mysql不包含某个值)

MySQL查询不包含某个值

在MySQL查询中,有时候需要排除掉某个特定的值,但是又不能全部过滤,该怎么实现呢?本文将介绍几种方法来达成这个目标。

方法一:使用NOT IN

NOT IN语句可以用来筛选值不在指定列表中的记录。例如,假设有一个student表,我们要排除名字为Tom的学生,可以这样写:

SELECT * FROM student
WHERE name NOT IN ('Tom');

该语句将只显示除了名字为Tom的学生之外的所有学生。我们可以在列表中指定多个值以排除多个值:

SELECT * FROM student
WHERE name NOT IN ('Tom', 'Jerry');

方法二:使用NOT LIKE

NOT LIKE语句可以用来排除特定字符串匹配的记录。例如,假设有一个book表,我们要排除书名中包含”cookbook”的书籍,可以这样写:

SELECT * FROM book
WHERE title NOT LIKE '%cookbook%';

该语句将只显示书名不包含”cookbook”的所有书籍。

方法三:使用NOT EXISTS

NOT EXISTS语句可以用来筛选没有匹配结果的记录。例如,假设有一个order表和一个product表,我们要排除那些没有在product表中出现的order记录,可以这样写:

SELECT * FROM order o
WHERE NOT EXISTS (
SELECT * FROM product p
WHERE o.product_id = p.product_id
);

该语句将只显示那些实际存在于product表中的order记录。

方法四:使用LEFT JOIN

LEFT JOIN语句可以连接两个表,并显示其中一个表中不存在的记录。例如,假设还是有一个order表和一个product表,我们要排除那些没有在product表中出现的order记录,可以这样写:

SELECT o.* FROM order o
LEFT JOIN product p ON o.product_id = p.product_id
WHERE p.product_id IS NULL;

该语句将只显示那些实际存在于product表中的order记录。

综上所述,有多种方法可以在MySQL查询中排除掉某个值或匹配的记录。根据实际需求,选择合适的方法来实现就可以了。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《MySQL查询不包含某个值(mysql不包含某个值)》
文章链接:https://zhuji.vsping.com/191498.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。