制作公司的网站,费用,莱芜百姓网,图书商城网站开发的目的MariaDB exists 学习 exists对外表用loop逐条查询#xff0c;每次查询都会查看exists的条件语句#xff0c;当 exists里的条件语句能够返回记录行时(无论记录行是的多少#xff0c;只要能返回)#xff0c;条件就为真#xff0c;返回当前loop到的这条记录#xff0c;反之如… 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条件。 转载于:https://www.cnblogs.com/new0801/p/6146600.html