MySQL子查詢的幾種罕見情勢引見。本站提示廣大學習愛好者:(MySQL子查詢的幾種罕見情勢引見)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL子查詢的幾種罕見情勢引見正文
mysql子查詢的幾種罕見寫法:
select * from xxx where col = [any|all](select * from xxxx);
該句法可分為加症結詞和不加症結詞的寫法,當不加症結詞的時刻,子查詢語句前往的是一個團圓值(留意是一個),查詢語句將以子查詢語句的成果作為本身 where子句的前提停止查詢,該句法可以在子查詢語句前參加any、all、some等症結字,此時子查詢語句前往的是一組團圓值。any則表現,查詢語句是以子查詢前往的值作為一個規模,在此值規模內停止查詢,其與in症結字相像;all症結不太好懂得,表現起全體婚配啥的。
select * from xxx where col in (select * from xxxx);
該 句法相當的清楚明了,就是查詢語句的where子句是以子查詢語句的成果作為其規模的,與上一種語法的any類似;
select row(value1,value2.....) = [any](selectcol1,col2..);
該語句的履行本質是:子查詢語句的履行所得的成果與查詢的成果集婚配,若能找到婚配的前往真,不然前往假,而且雙方的成果集都是一組團圓值;
select .... where col = [not] exists (select......);
該語句比擬糟糕,其履行是如許的:當子查詢停止操作,有前往成果的時刻,該語句才會履行,並且有若干個成果,語句就履行幾回;
select .... from (select .....) as name where ......
該句法,在日常平凡用的比擬少,並且其實不好懂得。實際上是這麼一回事,經由過程子查詢履行的成果來結構一張新的表(這個表是一張衍生數據表,是一張虛擬的表),其用來作為主句的查詢的對象,該句法功效異常壯大,在一些龐雜的查詢中會常常用到。
子查詢固然挺便利,但其有很多缺陷,其不支撐limit,並且經試驗證實其履行效力相當不睬想,在普通的情形下,照樣不推舉是用子查詢。