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

首頁 > 數據庫 > MySQL > 正文

MySQL中Union子句不支持order by的解決方法

2024-07-24 13:09:54
字體:
來源:轉載
供稿:網友

本文實例講述了MySQL中Union子句不支持order by的解決方法。分享給大家供大家參考,具體如下:

我對DB知之甚少,這問題只在MySQL遇到,不知道別的DBMS是不是也如此。

問題是這樣的,我打算在一個表里獲得與某一行記錄相鄰的兩行,并且想通過union一起取出來,所以這么寫:

select id,title from subjects where id>#some_id# order by id limit 1unionselect id,title from subjects where id<#some_id# order by id limit 1

但出現了錯誤提示“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) unionselect id,title from subjects where id<#some_id# order by id limit 1

從經驗上說,第二個子句該不會被union影響,可以用order by。于是把第一個子句包在一個括號里,這下應該就可以了。可是還是有錯誤,提示“ 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 unionselect id,title from subjects where id<#some_id# order by id limit 1

這條語句成功執行并且得到了正確的結果,在此寫下來備忘。

希望本文所述對大家MySQL數據庫計有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂州市| 金堂县| 那坡县| 汝城县| 永城市| 邵阳县| 齐齐哈尔市| 新蔡县| 绵阳市| 买车| 江源县| 遂川县| 郧西县| 崇仁县| 泰州市| 龙江县| 崇文区| 武安市| 鸡泽县| 安丘市| 乌鲁木齐县| 呼图壁县| 聊城市| 惠州市| 清原| 广昌县| 蒙山县| 前郭尔| 彰化县| 中西区| 湟中县| 财经| 灯塔市| 乌海市| 望奎县| 新宾| 禄丰县| 泌阳县| 靖边县| 长汀县| 余庆县|