zoukankan      html  css  js  c++  java
  • MariaDB exists 学习

    MariaDB exists 学习

          exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为 false。

          如下:

    select * from A where exists (select 1);

          对A表的记录逐条取出,由于子条件中的select 1永远能返回记录行,那么A表的所有记录都将被加入结果集,所以与 select * from A;是一样的。

          又如下:

    select * from A where exists (select * from A where a = 0);

          可以知道对A表进行loop时,检查条件语句(select * from A where a = 0),由于a永远不为0,所以条件语句永远返回空集,条件永远为false,那么A表的所有记录都将被丢弃。

          not exists与exists相反,也就是当exists条件有结果集返回时,loop到的记录将被丢弃,否则将loop到的记录加入结果集。

          总的来说,如果A表有n条记录,那么exists查询就是将这n条记录逐条取出,然后判断n遍exists条件。

  • 相关阅读:
    vbscript 语言通过序列和ADODB实现取号不重复
    arcgisserver成功发布服务后,浏览服务,无地图显示
    GUID的获取
    EasyUi 表格自适应宽度
    接口隔离原则
    依赖倒置原则
    开放封闭原则
    单一职责原则
    python-函数基础
    python -流程控制
  • 原文地址:https://www.cnblogs.com/muyuge/p/6151996.html
Copyright © 2011-2022 走看看