MySQL中EXISTS的用法

原创 朱雀 2021-04-27 03:57 133246阅读 3赞

MySQL中EXISTS的用法

Mysql中我们用的最多的多个值查询in,但in有很多缺点,例如效率不高,如果存在null值Mysql还无法执行导致整个程序报错.接下来这篇帖子教你如何使用mysql中的exists.

image-20210427114027306

在工作中,往往我们会看到这样的sql,难以理解.所以今天为了让读者能够看懂.做一个简单的例子

image-20210427114639249

假设我们有两张表一张是app_sequ_pb 另一张是app_user

app_sequ_pb 是用户屏蔽表 通过此表 我们可以添加屏蔽的用户

image-20210427114820753

用户表则有很多数据,但是我们如何知道,我们屏蔽的是那些用户呢?

image-20210427114947946

执行sql执行sql得出上图:

  1. select * from app_user where exists(select id from app_sequ_pb where app_user.id = userid)

image-20210427115051243

  1. select * from app_user where !exists(select id from app_sequ_pb where app_user.id = userid)

在exists前面加!取反 得到所有未屏蔽的数据.

总结:

A表和B表需要有关联关系.exists内的sql必须关联A表,select * 返回的结果可以只写一个字段提高查询效率.

完毕…..

转载请注明出处

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,133246人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQLEXISTS

    MySQL中EXISTS的用法 Mysql中我们用的最多的多个值查询in,但in有很多缺点,例如效率不高,如果存在null值Mysql还无法执行导致整个程序报错.接下来这...