返回顶部
首页 > mysql如何写不包含
  • 40
分享到

mysql如何写不包含

2024年03月28日 40人浏览 编程网

摘要

在 MySQL 中编写"不包含"查询可以利用 NOT IN 或 NOT EXISTS 运算符。NOT IN 运算符与 IN 运算符类似,但它返回不包含在指定值的集合中的行。NOT EXISTS 运算符查找不满足指定子查询的行。

详细说明

NOT IN 运算符

NOT IN 运算符的语法如下:

SELECT * FROM table_name WHERE column_name NOT IN (value1, value2, ..., valueN);

例如,要从 "customers" 表中选择不包含特定姓氏(例如 "Smith")的客户,可以使用以下查询:

SELECT * FROM customers WHERE last_name NOT IN ("Smith");

NOT EXISTS 运算符

NOT EXISTS 运算符的语法如下:

SELECT * FROM table_name WHERE NOT EXISTS (subquery);

例如,要从 "orders" 表中选择没有关联的 "customers" 表记录的订单,可以使用以下查询:

SELECT * FROM orders WHERE NOT EXISTS (SELECT 1 FROM customers WHERE customer_id = order_id);

此查询筛选出满足以下条件的订单:

  • 订单表中没有对应的客户记录。
  • 客户表中不存在具有与订单表中的订单 ID 相同的 customer_id。

比较 NOT IN 和 NOT EXISTS

NOT IN 和 NOT EXISTS 运算符都可以用于排除满足特定条件的行。然而,它们在某些方面有所不同:

  • 性能: NOT IN 通常比 NOT EXISTS 更快,因为它不需要执行子查询。
  • 可用性: NOT IN 可用于所有 MySQL 版本,而 NOT EXISTS 仅在 MySQL 4.1 及更高版本中可用。
  • 可扩展性: NOT IN 可以在子查询中使用,而 NOT EXISTS 则不能。
  • 易读性: NOT IN 通常被认为比 NOT EXISTS 更易读和理解。

其他方法

除了 NOT IN 和 NOT EXISTS 运算符之外,还可以使用以下方法来编写不包含查询:

  • 子查询:使用子查询来选择不满足指定条件的行。
  • EXCEPT 操作符:从两个数据集排除重叠,从而生成不包含在第一个数据集中的行。

示例查询

以下是一些使用 NOT IN 和 NOT EXISTS 的示例查询:

NOT IN 查询:

  • 选择不包含特定值的列:

    SELECT * FROM table_name WHERE column_name NOT IN (value1, value2, ..., valueN);
  • 从一个表中选择不在另一个表中的行:

    SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);

NOT EXISTS 查询:

  • 选择没有关联记录的行:

    SELECT * FROM table_name WHERE NOT EXISTS (SELECT 1 FROM related_table WHERE condition);
  • 选择满足子查询中条件的行:

    SELECT * FROM table_name WHERE NOT EXISTS (SELECT 1 FROM related_table WHERE condition);

以上就是mysql如何写不包含的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: mysql如何写不包含

本文链接: https://www.lsjlt.com/wiki/7a46467075.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作