MySQL中列子查询与行子查询操作的学习教程

MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的接受MySQL 列子查询列子查询是指子查询再次回到的结果集是 N 行一列,该结果经常来自对表的某部字段查询再次回到。多少个列子查询的例证如下:

SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)

列子查询中应用 IN、ANY、SOME 和 ALL 操作符

出于列子查询再次回到的结果集是 N 行一列,因而不能够一贯动用 = = = 这一个相比较标量结果的操作符。在列子查询中得以应用 IN、ANY、SOME 和 ALL 操作符:

IN:在钦命项内,同 IN(项1,项2,…卡塔尔国。 ANY:与比较操作符联合利用,表示与子查询重回的别样值比较为 TRUE ,则赶回 TRUE 。 SOME:ANY 的外号,超少使用。 ALL:与比较操作符联合使用,表示与子查询重临的具备值相比较都为 TRUE ,则赶回 TRUE 。

上边是原本数据表:

table1:

s1210

table2:

s251220

ANY 操作符ANY 关键字必得接在一个相比较操作符的末尾,表示与子查询重临的任何值相比较为 TRUE ,则赶回 TRUE 。叁个 ANY 例子如下:SELECT s1 FROM table1 WHERE s1 ANY (SELECT s2 FROM table2卡塔尔(قطر‎查询重回结果如下所示:

s110

在子查询中,重回的是 table2 的享有 s2 列结果,然后将 table1 中的 s1 的值与之进行比较,只要当先 s2 的其余值即表示为 TRUE,切合查询条件。IN 是 = ANY 的别称,二者相通,但 NOT IN 的别称却不是 ANY 而是 SOME。特殊情形只要 table2 为空表,则 ANY 后的结果为 FALSE;假如实查询重返如 (NULL,NULL,NULL卡塔尔 列为空的结果,则 ANY 后的结果为 UNKNOWN 。ALL 操作符ALL 关键字必得接在三个比较操作符的后面,表示与子查询再次来到的全体值比较为 TRUE ,则赶回 TRUE 。二个 ALL 例子如下:SELECT s1 FROM table1 WHERE s1 ALL (SELECT s2 FROM table2卡塔尔该查询不会重返任何结果,因为 s1 中从未比 s2 全体值都大的值。当然在该例子查询中,重临了 s2 的持有值,您能够在该子查询中增进此外条件以节制重临的询问结果而不必要任何回到。NOT IN 是 ALL 的外号,二者相似。特殊情状假如 table2 为空表,则 ALL 后的结果为 TRUE;借使实查询重临如 (0,NULL,1卡塔尔国 这种固然 s1 比再次来到结果都大,但有空行的结果,则 ALL 后的结果为 UNKNOWN 。注意:对于 table2 空表的处境,上面包车型地铁语句均再次来到 NULL:

SELECT s1 FROM table1 WHERE s1  (SELECT s2 FROM table2)SELECT s1 FROM table1 WHERE s1  ALL (SELECT MAX(s1) FROM table2)

MySQL 行子查询行子查询是指子查询重返的结果集是单排 N 列,该子查询的结果平日是对表的某行数据开展询问而回到的结果集。二个行子查询的事比如下:

SELECT * FROM table1 WHERE (1,2) = (SELECT column1, column2 FROM table2)

在该例子中,在有限支撑子查询重回单一行数据的前提下,要是 column1=1 且 column2=2 ,则该查询结果为 TRUE。MySQL 行构造符在上边的例子中,WHERE 后边的 (1,2卡塔尔国 被称呼行构造符,也足以编写 ROW(1,2卡塔尔(قطر‎。行布局符常常用于与对能回去八个或多少个以上列的子查询举行比较。MySQL 行子查询实例下边是用以例子的两张本来数据表:article 表:

blog 表:

SQL 如下:

SELECT * FROM article WHERE (title,content,uid) = (SELECT title,content,uid FROM blog WHERE bid=2)

查询重返结果如下所示:

在该行子查询例子中,将 article 表 title,content,uid 字段逐条与子查询再次回到的行记录作相比,假诺相等则列出这一个相等的笔录。

本文由js9905com金沙网站-金沙澳门手机版网址发布于计算机,转载请注明出处:MySQL中列子查询与行子查询操作的学习教程

您可能还会对下面的文章感兴趣: