mysql exists 如何使用
还没时间看,exists用的少 ==》当你只需要判断后面的查询结果是否存 在时使用exists()
http://edu.codepub.com/2011/0208/29218.php
今天正好做一个查询,两个表中过滤数据,当T1中字段F1在T2表的F2中存在时,返回这条件数据。刚刚开始觉得简单,就想到子查询和连接查询,但是发现 两个表中如果数据量多时,这样就不行,并且效率不高,后来想到用Mysql中的In函数,当用完后,也做出来了。但是想了一下,觉得应该有更好用的才对, 于是打开MYSQL手册,查IN,结果找到exist函数。
exist:用法如下:
select * from T1 where exist(select * from T2 where T1.F1=T2.F2);
其中,exist()中返回的只有TRUE和FALSE,这样过滤的速度也比In快,也不用很麻烦。
其实exist()用的最常见的,应该是在数据的插入,当数据库中存在时,不要插入数据,以防止数据重复插入。
Insert into T1 set F1=’xxx’,F2=’xxcc’ where not exist(select * from T1 where F1=’xxxx’);
上面意思就是当表T1中F1存在值为xxxx的值记录时,不插入数据。
实际上确实如此。当你只需要判断后面的查询结果是否存在时使用exists();
当你需要使用里面的结果集的时候必须用in();
比方说: select fathername from atable where exists( select id from studenttable where name='tao2ge');
当要查询一个叫淘二哥同学的爸爸的时候,需要使用exists();
但如果有一群学生需要查爸爸。 那就得用in了。
select fathername from atable where fatherid in (select id from student);
mysql exists 如何使用的更多相关文章
- mysql 有报错 ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
sh-4.1# /etc/init.d/mysqld status ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql ...
- Centos安装完MariaDB后启动不了 MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
[root@admin-node subsys]# service mysql startStarting MySQL. ERROR! [root@admin-node subsys]# servic ...
- ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
通过service mysql status 命令来查看mysql 的启动状态 报错如下: ERROR! MySQL is not running, but lock file (/var/lock/ ...
- Linux - mysql 异常: ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
问题描述 ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists 解决方案 删除:/var/lock/su ...
- Mysql exists 与 in
今天公司同事反馈一个SQL语句删除数据删除了一个小时,还没有删除完,强制中断. 第一眼看到 exists 的时候,脑子里要有这么个概念: Oracle exists 的效率比in 高.而Mysql 则 ...
- MySQL exists的用法介绍
有一个查询如下: 1 SELECT c.CustomerId, CompanyName 2 FROM Customers c 3 WHERE EXISTS( 4 SELECT Or ...
- mysql exists 和 in的效率比较
这条语句适用于a表比b表大的情况 select * from ecs_goods a where cat_id in(select cat_id from ecs_category b); 这条语句适 ...
- MySQL - exists与in的用法
[1]exists 对外表用loop逐条查询,每次查询都会查看exists的条件语句. 当 exists里的条件语句能够返回记录行时(无论记录行是多少,只要能返回),条件就为真 , 返回当前loop到 ...
- mysql exists及not exists的使用
对exists及not exists的使用根据下面的示例进行解释 如sql: select sname from student where exists (select * from score)) ...
随机推荐
- android getWidth()和getMeasuredWidth()方法的区别
getWidth() Return the width of the your view. Returns The width of your view, in pixels. 源代码: public ...
- 洛谷 P3749: LOJ 2146: [SHOI2017]寿司餐厅
题目传送门:LOJ #2146. 题意简述: 有 \(n\) 种寿司,第 \(i\) 种寿司的类型为 \(a_i\). 如果你吃了第 \(i\) 种到第 \(j\) 种寿司,你会得到 \(d_{i,j ...
- gbk文件转为utf8文件
convmv -f gbk -t utf- --notest -r ./
- django和flask关于oralce数据库配置
Django中关于Oracle数据库配置 # 使用SERVICE_NAME DATABASES = { 'default': { 'ENGINE': 'django.db.backends.oracl ...
- 网络抓包神器-Charles使用指南
http://blog.csdn.net/liulanghk/article/details/46342205 目录 概述 安装 显示模式 PC端抓包 移动应用抓包 其他技能 charles使用问题汇 ...
- (四)Dubbo Admin管理控制台
Dubbo Admin管理控制台 在dubbo2.6.0往后的版本在dubbo发布包中就没有dubbo-admin了,而是在incubator-dubbo-ops(https://github.com ...
- hdu 5427(排序水题)
排序 年轻的排前面 名字中可能有空格 Sample Input21FancyCoder 19962FancyCoder 1996xyz111 1997 Sample OutputFancyCoderx ...
- 如何用prometheus监控k8s集群中业务pod的metrics
一般,我们从网上看到的帖子和资料, 都是用prometheus监控k8s的各项资源, 如api server, namespace, pod, node等. 那如果是自己的业务pod上的自定义metr ...
- tidb 升级步骤
1.检查ansible版本,正常情况下,2.1 rc3需要兼容ansible 2.5以上的版本 $ ansible --version 2.检查python两个模块jinja2需要升级到2.9.6或以 ...
- sqoop1.4.6数据迁移
sqoop介绍 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具. 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS.HIVE.HBASE等数据存 ...