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用法的资料请关注云海天教程其它相关文章!
原文链接:https://segmentfault.com/a/1190000038464558
mysql exists怎么用_Mysql exists用法小结相关推荐
- mysql exists依赖查询_MySQL EXISTS 和 NOT EXISTS 子查询
MySQL EXISTS 和 NOT EXISTS 子查询语法如下: 1 SELECT ... FROM table WHERE EXISTS (subquery) 该语法可以理解为:将主查询的数据, ...
- mysql 常用的数据源_MySQL常用数据库小结
SQL分类:DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT ...
- mysql的exp平方_MySQL EXP()用法及代码示例
MySQL中的EXP()函数用于将E提升为指定数字的幂.这里E(2.718281 ...)是自然对数的底数. 用法: EXP(X) 参数:此方法接受语法中上面提到并在下面描述的一个参数: X-一个指定 ...
- MySQL inet aton函数_MySQL INET_ATON()用法及代码示例
INET_ATON(): MySQL中的此函数将IPv4地址的dotted-quad表示形式作为字符串,并以整数形式返回给定IP地址的数值.如果输入地址不是有效的IPv4地址,则此函数返回NULL.返 ...
- mysql的weekday函数_MySQL WEEKDAY()用法及代码示例
MySQL中的WEEKDAY()函数用于查找给定日期的工作日值.如果日期为NULL,则WEEKDAY()函数将返回NULL.否则,它将返回日期的索引,即星期一为0,星期二为1,星期日为6. 用法: W ...
- mysql aes源码_MySQL AES_DECRYPT()用法及代码示例
MySQL AES_DECRYPT函数在解密加密的字符串后返回原始字符串.它使用AES(高级加密标准)算法执行解密. AES_DECRYPT函数返回解密的字符串,如果检测到无效数据,则返回NULL. ...
- mysql distinct效率优化_mysql distinct 用法详解及优化
本事例实验用表task,结构如下 MySQL> desc task; +-------------+------------+------+-----+-------------------+- ...
- mysql 的或表达式_MySQL表达式学习小结
在mysql数据库中,一个表达式是直接量.列名.运算符和函数的组合,然后得到一个值. 例如: 5-2 这是一个表达式: LEFT('this',2) 也是一个表达式. 1,表达式别名 对于SEL ...
- mysql 结束符报错_Mysql手工注入小结
前言 实习电话面的时候,问到了sql注入的利用,我扒拉扒拉一大堆,结果脑子一抽,说Mysql注入不支持堆叠注入 我学安全目前最后悔的事情就是,最开始入门的时候,连数据库这门课都没开始学,当时连最基本的 ...
最新文章
- Cisco交换机解决网络蠕虫病毒***问题
- LeetCode-Sort List 链表排序
- SDL及扩展库在ARM-Linux 完整移植
- seo vue 动态路由_VUE项目SEO问题的解决
- docker file 示例
- 爬虫2 urllib用法
- 无需第三方recovery安装xposed,亲测有效
- w ndows模拟器,iPad 模拟器 模拟器(windows - iPadian)
- VS2013导出模板与删除导出模板
- spring手动控制事务开启_手动控制spring事务
- Android开发 SpannableString开发详解
- 使用python解决图像识别中常见的问题
- image could not be accessed on a registry to record its digest
- MATLAB长除法求z变换逆变换
- PHP开发阿里云短信服务接口
- 汉化+破解Substance Painter 2019 macv2019.1.0图文展示
- java-easyExcel导出-合并单元格
- php计算两个坐标(经度,纬度)之间的方位角
- win10xp化折腾指南
- 081200计算机科学与技术专业,研究生计算机科学与技术专业排名
热门文章
- 二维码(带Logo)加密解密-ZXing方式
- vs2019 安装完成没有反应_vs2019安装失败解决方法
- dreamwrear cc 汉化
- 外网访问内网SpringBoot【免费内网穿透】
- 点击confirm的取消如何隐藏提示框
- 为什么华为手机用的是鸿蒙系统,鸿蒙系统已经发布,为何华为手机还在用安卓?余承东给出了答案...
- 关于大模型实践的一些总结
- 图灵指数——学术大数据下的跨领域跨年代学者影响力评估
- 运动会计算机学院的方队,急求计算机学院运动会方队口号
- P2128 赤壁之战 AC于2018.11.6