广告
返回顶部
首页 > 资讯 > 数据库 >Mysql exists用法小结
  • 667
分享到

Mysql exists用法小结

Mysqlexists用法Mysqlexists 2022-05-29 18:05:51 667人浏览 安东尼
摘要

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

简介

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用法的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql exists用法小结

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

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

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

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

下载Word文档
猜你喜欢
  • Mysql exists用法小结
    简介 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。 EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 su...
    99+
    2022-05-29
    Mysql exists用法 Mysql exists
  • MySQL中EXISTS的用法
    在MySQL中,EXISTS是一个用于检查子查询是否返回结果的关键字。它的基本语法如下:```SELECT 列名FROM 表...
    99+
    2023-09-14
    MySQL
  • mysql中exists的用法详解
    前言 在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个 exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案 语法解释 语法 SELEC&...
    99+
    2023-08-16
    mysql 数据库 database exists in
  • mysql中exists的用法是什么
    在MySQL中,EXISTS是一个条件运算符,用于检查一个子查询是否返回任何行。它的语法如下:```SELECT colum...
    99+
    2023-08-25
    mysql
  • MySQL中not exists的用法是什么
    在MySQL中,"NOT EXISTS"是一种用于判断某个条件是否不存在的运算符。它的使用语法如下:```SELECT co...
    99+
    2023-09-26
    MySQL
  • MySQL 5.7 NOT EXISTS的用法是什么
    本篇文章给大家分享的是有关MySQL 5.7 NOT EXISTS的用法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2022-10-18
  • MySQL中exists、in及any的基本用法
    【1】exists 对外表用loop逐条查询,每次查询都会查看exists的条件语句。 当 exists里的条件语句能够返回记录行时(无论记录行是多少,只要能返回),条件就为真 ,...
    99+
    2022-11-11
  • MySQL为什么慎用if not exists写法
    这篇文章将为大家详细讲解有关MySQL为什么慎用if not exists写法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。版本 5.6.14环境CREATE TABLE...
    99+
    2022-10-18
  • mysql中exists怎么用
    这篇文章主要介绍mysql中exists怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在mysql中,exists用于检查子查询是否至少会返回一行...
    99+
    2022-10-19
  • MySQL修改时区的方法小结
    问题现象:在数据库中的日期显示正常,但是通过JSP进行调用后发现时间偏差了13个小时。经查询,此问题是由于MySQL的默认时区设置造成的。 具体排查和操作方法如下: 一、查看MySQL当前时区和时间 > show variabl...
    99+
    2014-12-27
    MySQL修改时区的方法小结
  • mysql中EXISTS和IN的使用方法比较
    1、使用方式: (1)EXISTS用法 select a.batchName,a.projectId from ucsc_project_batch a wher...
    99+
    2022-11-11
  • SQLServer中EXISTS结构如何使用
    这期内容当中小编将会给大家带来有关SQLServer中EXISTS结构如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  如何巧妙利用SQLServer的EXIST...
    99+
    2022-10-18
  • oracle中的exists 和not exists 用法详解
    在Oracle中,EXISTS和NOT EXISTS是用来检查子查询是否返回任何行的条件运算符。- EXISTS:当子查询返回至少一...
    99+
    2023-09-12
    Oracle
  • MySQL授权命令grant的使用方法小结
    MySQL授权命令grant的使用方法: 本文实例,运行于 MySQL 5.0 及以上版本。 MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 ...
    99+
    2022-11-12
  • springjdbctemplate的用法小结
    目录概述JDBCTemplate开发步骤介绍使用概述 原始繁琐的JDBC API对象的封装;操作模板如下:JdbcTemplate和HibernateTemplate,操作nosql...
    99+
    2023-05-16
    spring jdbctemplate使用 spring jdbctemplate
  • mysql中exists怎么使用
    在MySQL中,`EXISTS`是一个用于判断子查询中是否存在数据的关键字。它的使用方式如下:```sqlSELECT co...
    99+
    2023-08-29
    mysql exists
  • Mysql常用函数小总结
    Mysql数据库提供了大量的函数,学会使用将会事半功倍,以下分别为字符串函数,数值函数,时间和日期函数,系统函数 (一)字符串函数  CONCAT(s1,s2,...) 返回连接参数产生的字符串,一个或多个待拼接的内容...
    99+
    2019-09-24
    Mysql常用函数小总结
  • 详细聊聊sql中exists和not exists用法
    目录exists:exists 和in 的区别not exists详细介绍:附案例分析总结之所以要说这个问题,是因为项目中用到了not exists,但两者写的语句只有一点差别,结果...
    99+
    2022-11-13
  • 详细聊聊sql中exists和not exists用法
    在SQL中,EXISTS和NOT EXISTS是用于判断子查询中是否存在或不存在记录的条件运算符。1. EXISTS用法:EXIST...
    99+
    2023-08-08
    SQL
  • mysql中关键词exists的用法实例详解
    目录前言语法解释语法说明使用案例环境准备常用查询exists与in的效率比较循环嵌套查询执行原理循环优化策略exists和in查询原理的区别结论总结前言 在日常开发中,用mysql进...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作