国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

Mysql數(shù)據(jù)庫(kù)union和order by優(yōu)先級(jí)

2024-07-24 12:36:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在Mysql的參考手冊(cè)中,并沒(méi)有對(duì)union和order by的優(yōu)先級(jí)進(jìn)行說(shuō)明,它建議的方法是,對(duì)SQL語(yǔ)句加上(),這樣能使SQL的語(yǔ)義更清晰.

例如,需要對(duì)union后的結(jié)果進(jìn)行order by,則"

  1. (SELECT a FROM tbl_name WHERE a=10 AND B=1) 
  2.  
  3. UNION 
  4.  
  5. (SELECT a FROM tbl_name WHERE a=11 AND B=2) 
  6. //開(kāi)源代碼Vevb.com 
  7. ORDER BY a LIMIT 10; 

如果,需要對(duì)單個(gè)SQL語(yǔ)句進(jìn)行order by,則應(yīng)把order by子句放入圓括號(hào)中,如下:

  1. (SELECT a FROM tbl_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10) 
  2.  
  3. UNION 
  4.  
  5. (SELECT a FROM tbl_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10); 

另外注意:圓括號(hào)中用于單個(gè)SQL語(yǔ)句的ORDER BY只有當(dāng)與LIMIT結(jié)合后,才起作用,否則,ORDER BY被優(yōu)化去除,我在innodb引擎的2個(gè)表上測(cè)試了沒(méi)有加(),進(jìn)行union和order by的操作,如下:

  1. SELECT a FROM tbl_name WHERE a=10 AND B=1 
  2.  
  3. UNION 
  4.  
  5. SELECT a FROM tbl_name WHERE a=11 AND B=2 
  6.  
  7. ORDER BY a LIMIT 10; 

發(fā)現(xiàn),它默認(rèn)的結(jié)果也是先進(jìn)行union,然后再order by,和第一種情況執(zhí)行結(jié)果相同,不過(guò),為了邏輯清晰,最好還是加上對(duì)應(yīng)的()比較好.

另外:Mysql中union可以有union,union distinct,union all這3中形式.

union和union distinct會(huì)對(duì)union后的結(jié)果進(jìn)行排重,保證所有返回的行都是唯一的

union all則會(huì)返回所有SELECT語(yǔ)句中得到所有匹配的行.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 五指山市| 潍坊市| 砚山县| 敖汉旗| 浙江省| 固原市| 镇赉县| 澄迈县| 茂名市| 瑞昌市| 临洮县| 布尔津县| 松原市| 淮北市| 水城县| 孟连| 那曲县| 石林| 舒城县| 九江县| 富民县| 四川省| 麻栗坡县| 泽普县| 秦皇岛市| 新沂市| 阿勒泰市| 宁都县| 永胜县| 陇川县| 祁连县| 康保县| 荃湾区| 玉林市| 专栏| 富阳市| 页游| 罗田县| 正定县| 长岛县| 靖江市|