mysql不支持union_Mysql中Union的子句不支持order by
問題是這樣的,我打算在一個表里獲得與某一行記錄相鄰的兩行,并且想通過union一起取出來,所以這么寫:
select id,title from subjects where id>#some_id# order by id limit 1
union
select id,title from subjects where id
但出現(xiàn)了錯誤提示“Incorrect usage of UNION and ORDER BY”。看來不能這么用union和order by,但這里確實是需要order by的。很快,我想到了一個變通的寫法:
select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) union
select id,title from subjects where id
從經(jīng)驗上說,第二個子句該不會被union影響,可以用order by。于是把第一個子句包在一個括號里,這下應(yīng)該就可以了。可是還是有錯誤,提示“ Every derived table must have its own alias”。這里的提示是需要給我們括號里面生成的臨時表取一個別名,這個好辦多了。于是改為:
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
這條語句成功執(zhí)行并且得到了正確的結(jié)果,在此寫下來備忘。
總結(jié)
以上是生活随笔為你收集整理的mysql不支持union_Mysql中Union的子句不支持order by的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql OA_mysql优化工具—m
- 下一篇: mysql date string类型_