miller
发布于

mysql Exists 用法

用法:Select * from TableA a where Not Exists (Select * from TableB b where a.id=b.id and a.name=b.name);

1、Not Exists 用在where之后,且后面紧跟子查询语句(带括号);

2、Not Exists(Exists) 并不关心子查询的结果具体是什么,只关心子查询有没有结果;

3、这条语句的意思,把TableA的记录逐条代入到子查询,如果子查询结果集为空,说明不存在,那么这条TableA的记录出现在最终结果集,否则被排除;


在MySQL中,可以使用以下语句查询ID不连续的记录:

SELECT *
FROM table_name t1
WHERE NOT EXISTS (
    SELECT *
    FROM table_name t2
    WHERE t2.id = t1.id + 1  // 改成t1.id= t2.id+1  也会多出最小的id。而这个id算是连续的。取结果集时候要去掉
);
浏览 (502)
点赞
收藏
1条评论
miller
miller
https://www.depesz.com/2024/12/01/sql-best-practices-dont-compare-count-with-0/ 用exists 判断 有没有,而不是count(1) ==0 . 简单点可以 select id from table limit 1 , 一般情况 不用这个扣性能
点赞
评论