MySQL中Union子句不支持order by的解決方法
本文實(shí)例講述了MySQL中Union子句不支持order by的解決方法。分享給大家供大家參考,具體如下:
我對(duì)DB知之甚少,這問題只在MySQL遇到,不知道別的DBMS是不是也如此。
問題是這樣的,我打算在一個(gè)表里獲得與某一行記錄相鄰的兩行,并且想通過union一起取出來,所以這么寫:
select id,title from subjects where id>#some_id# order by id limit 1 union select id,title from subjects where id<#some_id# order by id limit 1
但出現(xiàn)了錯(cuò)誤提示“Incorrect usage of UNION and ORDER BY”??磥聿荒苓@么用union和order by,但這里確實(shí)是需要order by的。很快,我想到了一個(gè)變通的寫法:
select * from ( select id,title from subjects where id>#some_id# order by id limit 1 ) union select id,title from subjects where id<#some_id# order by id limit 1
從經(jīng)驗(yàn)上說,第二個(gè)子句該不會(huì)被union影響,可以用order by。于是把第一個(gè)子句包在一個(gè)括號(hào)里,這下應(yīng)該就可以了??墒沁€是有錯(cuò)誤,提示“ Every derived table must have its own alias”。這里的提示是需要給我們括號(hào)里面生成的臨時(shí)表取一個(gè)別名,這個(gè)好辦多了。于是改為:
select * from ( select id,title from subjects where id>#some_id# order by id limit 1 ) as t1 union select id,title from subjects where id<#some_id# order by id limit 1
這條語句成功執(zhí)行并且得到了正確的結(jié)果,在此寫下來備忘。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
MySQL異?;謴?fù)之無主鍵情況下innodb數(shù)據(jù)恢復(fù)的方法
這篇文章主要介紹了MySQL異常恢復(fù)之無主鍵情況下innodb數(shù)據(jù)恢復(fù)的方法,結(jié)合實(shí)例形式分析了針對(duì)innodb引擎無主鍵的情況下恢復(fù)數(shù)據(jù)的步驟與相關(guān)技巧,需要的朋友可以參考下2016-04-04如何安裝綠色版MySQL Community Server 5.7.16并實(shí)現(xiàn)遠(yuǎn)程登錄
這篇文章主要介紹了安裝綠色版MySQL Community Server 5.7.16并實(shí)現(xiàn)遠(yuǎn)程登錄的方法,需要的的朋友參考下2017-07-07mysql 導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)以及函數(shù)、存儲(chǔ)過程的介紹
本篇文章是對(duì)mysql中的導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)命令以及函數(shù)、存儲(chǔ)過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07MySQL深入詳解delete與Truncate及drop的使用區(qū)別
對(duì)于drop、truncate和delete雖然簡(jiǎn)單,但是真要使用或者面試時(shí)候問到還是需要有一定的總結(jié),下面這篇文章主要給大家介紹了關(guān)于mysql中drop、truncate與delete區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-07-07mysql 服務(wù)意外停止1067錯(cuò)誤解決辦法小結(jié)
今天在配置服務(wù)器時(shí)安裝mysql5.5總是無法安裝,查看日志錯(cuò)誤提示為1067錯(cuò)誤,下面來看我的解決辦法2012-11-11Shell下實(shí)現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫(kù)的方法
這篇文章主要給大家介紹了在Shell下實(shí)現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫(kù)的方法,文中通過示例代碼一步步介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起看看吧。2017-06-06