mysql 標量子查詢
標量子查詢是指子查詢返回的是單一值的標量,如乙個數字或乙個字串,也是子查詢中最簡單的返回形式。
乙個標量子查詢的例子如下:
select * from article where uid = (select uid from user where status=1 order by uid desc limit 1)
在該例子中,子查詢語句:
select uid from user where status = 1 order by uid desc limit 1
返回的是單一的數字(如 2),實際的查詢語句為:
select * from article where uid = 2
使用子查詢進行比較
可以使用 = > < >= <= <> 這些操作符對子查詢的標量結果進行比較,通常子查詢的位置在比較式的右側:
select * from t1 where column1 = (select max(column2) from t2)
提示對於採用這些操作符之一進行的比較,子查詢必須返回乙個標量。唯一的例外是 = 可以和行子查詢同時使用。
子查詢與表連線
在很多情況下,子查詢的效果與 join 表連線很類似,但一些特殊情況下,是必須用子查詢而不能用表連線的,如:
select * from t1 where column1 = (select max(column2) from t2)
以及下例:
select * from article as t where 2 = (select count(*) from article where article.uid = t.uid)
article 文章表:
aidtitle
content
uid文章1
文章1正文內容...
文章2文章2正文內容...
文章3文章3正文內容...
文章4文章4正文內容...
user 使用者表:
uidusername
password
status
admin
b7e591c246d010bb2ccd77d52490c85e
小明a193686a53e4de85ee3f2ff0576adf01
jack
0193686a35e4de85ee3f2ff0567adf490
查詢返回結果如下所示:
aidtitle
content
uid文章1
文章1正文內容...
文章2文章2正文內容...
MySQL中的標量子查詢,列子查詢,行子查詢
標量子查詢,列子查詢,行子查詢都屬於where子查詢,也就是說都寫在where之後 標量子查詢 概念 子查詢得到的結果是乙個資料 一行一列 語法 select from 資料來源 where 條件判斷 select 欄位名 from 資料來源 where 條件判斷 查詢到的結果就只有乙個結果 案例 ...
在MySQL中使用子查詢和標量子查詢的基本用法
一 mysql 子查詢 子查詢是將乙個 select 語句的查詢結果作為中間結果,供另乙個 sql 語句呼叫。mysql 支援 sql 標準要求的所有子查詢格式和操作,也擴充套件了特有的幾種特性。子查詢沒有固定的語法,乙個子查詢的例子如下 select from article where uid ...
用分析函式優化標量子查詢
原語句如下 select ii.case when select count 1 from ii where ii.id 0 and ii.flag 2 and ii.i code ii.i code and ii.c id not in select c id from c where ig na...