我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql exists用法小结

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql exists用法小结

简介

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。

EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型为 Boolean,如果子查询包含行,则返回 TRUE。

示例

一张活动配置主表activity_main,通过act_code来唯一标明一场活动,活动举办地点适配表activity_area,通过act_code与主表进行关联,活动奖品表activity_sku,通过act_code与主表进行关联。

活动主表


CREATE TABLE `activity_main` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`act_code` varchar(255) NOT NULL COMMENT '活动代码',
`act_name` varchar(255) NOT NULL COMMENT '活动名称',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_code` (`act_code`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='活动主表'

活动在哪些网站举办的适配表


CREATE TABLE `activity_area` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `act_code` varchar(255) NOT NULL COMMENT '活动代码',
 `area` varchar(255) NOT NULL COMMENT '参与此活动的网站',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='活动适配的网站列表'

活动奖品表


CREATE TABLE `activity_sku` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `act_code` varchar(255) NOT NULL COMMENT '活动代码',
 `sku` varchar(255) NOT NULL COMMENT '活动赠送的商品',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='活动赠品表'

比较使用 EXISTS 和 IN 的查询
这个例子比较了两个语义类似的查询。第一个查询使用 IN 而第二个查询使用 EXISTS。注意两个查询返回相同的信息。


# 查询体重秤
select * from activity_main where act_code in (
select act_code from activity_sku where sku = '翎野君的体脂称'
)

# 查询体重秤
select * from activity_main a where exists (
select 1 from activity_sku b where a.act_code = b.act_code and b.sku = '翎野君的体脂称'
)

# 模糊查询B-BEKO英国婴儿推车
select * from activity_main where act_code in (
select act_code from activity_sku where sku like '%B-BEKO%'
)

# 模糊查询B-BEKO英国婴儿推车
select * from activity_main a where exists (
select 1 from activity_sku b where a.act_code = b.act_code and b.sku like '%B-BEKO%'
)

# 查询在博客园举办的活动
select * from activity_main where act_code in (
select act_code from activity_area where area = '博客园'
)

# 查询在博客园举办的活动
select * from activity_main a where exists (
select 1 from activity_area b where a.act_code = b.act_code and b.area = '博客园'
)


# 在博客园举办活动且活动奖品为华为手机的活动信息
select * from activity_main where act_code in (
select act_code from activity_area where area = '博客园' and act_code in (
select act_code from activity_sku where sku = '华为P30Pro'
))


# 内层的exists语句只在当前where语句中生效,最终是否返回,要根据最外层的exists判断,如果是 true(真)就返回到结果集,为 false(假)丢弃。
select * from activity_main a where exists (
select 1 from activity_area b where a.act_code = b.act_code and b.area = '博客园' and exists
(select 1 from activity_sku c where a.act_code = c.act_code and c.sku = '华为P30Pro')
)

以上就是Mysql exists用法小结的详细内容,更多关于Mysql exists用法的资料请关注自学编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql exists用法小结

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

下载Word文档

猜你喜欢

Mysql exists用法小结

简介EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。 EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的
2022-05-29

SqlServer中Exists的使用小结

SQLServer中Exists操作符:Exists检查子查询结果集是否存在行,返回布尔值。语法:SELECT*FROMtableWHEREEXISTS(SELECT1FROMtable2WHEREtable2.column=table1.column)。优点:提高性能语法简洁灵活性用途:检查数据是否存在验证约束执行复杂查询局限性:不返回具体值可能导致额外开销最佳实践:考虑性能影响简化子查询使用索引避免不必要的嵌套微调查询
SqlServer中Exists的使用小结
2024-04-02

oracle的exists用法总结

Oracle的EXISTS用于检查子查询是否返回任何行。它返回一个布尔值,如果子查询返回至少一行,则为true,否则为false。EXISTS的语法如下:SELECT column1, column2, ...FROM table1
oracle的exists用法总结
2024-04-09

MySQL中EXISTS的用法

在MySQL中,EXISTS是一个用于检查子查询是否返回结果的关键字。它的基本语法如下:```SELECT 列名FROM 表名WHERE EXISTS (子查询);```子查询可以是任何有效的SELECT语句,它可以返回一个结果集。如果子查
2023-09-14

mysql中exists的用法详解

前言 在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个 exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案 语法解释 语法 SELECT
2023-08-16

mysql中exists的用法是什么

在MySQL中,EXISTS是一个条件运算符,用于检查一个子查询是否返回任何行。它的语法如下:```SELECT column_name(s)FROM table_nameWHERE EXISTS (subquery)```其中,colum
2023-08-25

mysql exists怎么用

exists 用法:检查子查询中是否存在记录,存在时返回 true,否则返回 false。语法:select * from table_name where exists (subquery);子查询必须返回布尔值。exists 运算符避免
mysql exists怎么用
2024-06-02

MySQL中not exists的用法是什么

在MySQL中,"NOT EXISTS"是一种用于判断某个条件是否不存在的运算符。它的使用语法如下:```SELECT column_name(s)FROM table_nameWHERE NOT EXISTS (SELECT column
2023-09-26

oracle中的exists 和not exists 用法详解

在Oracle中,EXISTS和NOT EXISTS是用来检查子查询是否返回任何行的条件运算符。- EXISTS:当子查询返回至少一行时,EXISTS条件返回TRUE。如果子查询没有返回任何行,则返回FALSE。- NOT EXISTS:当
2023-09-12

mysql if exists怎么用

if exists 在 mysql 中用于检查数据库对象是否存在,在语句中执行操作前提是该对象存在。具体用法如下:语法:if exists 对象名称作用:如果对象存在,则执行操作,否则忽略操作。用途:用于在创建对象或执行操作前检查对象是否存
mysql if exists怎么用
2024-06-02

springjdbctemplate的用法小结

jdbcTemplate是spring框架中提供的一个对象,是对原始繁杂的jdbc对象的简单封装,本文通过实例代码介绍springjdbctemplate的用法小结,需要的朋友可以参考下
2023-05-16

sql中exists用法

exists 是 sql 中的一个布尔运算符,用于检查子查询是否返回任何行。它与子查询一起使用,子查询返回布尔值以确定是否存在满足条件的行。exists 主要用于确定与主表特定行匹配的行是否存在,例如查找关联表中存在匹配行的记录、检查表中是
sql中exists用法
2024-05-15

pandas DataFrame.to_sql()用法小结

PandasDataFrame.to_sql()方法用于将DataFrame写入关系型数据库。语法为DataFrame.to_sql(name,con,**kwargs),其中name为输出表名,con为数据库连接,kwargs为可选参数。参数包括schema(模式),if_exists(表已存在时的行为),index(是否将索引写入附加列),chunksize(分块写入大小),dtype(自定义列类型转换)。用法示例包括连接数据库、追加数据、写入索引、指定模式、分块写入和自定义类型转换。提示建议使用if
pandas DataFrame.to_sql()用法小结
2024-04-02

使用SQL中的EXISTS和NOT EXISTS的语法

SQL中的exists和not exists的用法,需要具体的代码示例在SQL中,exists和not exists是一对常用的谓词(predicate),用于判断一个子查询(subquery)是否返回了结果集。exists用于检查子查询
使用SQL中的EXISTS和NOT EXISTS的语法
2024-02-22

编程热搜

目录