union all子查詢排序

2021-10-10 15:47:45 字數 892 閱讀 4653

正確sql:

(select * from menu order by `name`

limit 5)

union all (select * from menu order by `name`

desc limit 5)

起始sql:

子查詢分別排序,結果報錯,明顯是union all和order的使用有錯

select * from menu order by `name`

union all (select * from menu order by `name`

desc )

[err] 1221 - incorrect usage of union and order by

檢視資料顯示,order by如果寫在最後面是對整個結果的排序:

子查詢1

union all

字查詢2 order by..

....

不是對子查詢2的排序,想到加上括號:

(select * from menu order by `name`

)union all (select * from menu order by `name`

desc )

沒有報錯有資料,但是發現資料的順序不是我們想要的,根本就沒有排序,繼續查詢發現需要加limit關鍵字。

(select * from menu order by `menu`

limit 5)

union all (select * from menu order by `menu`

desc limit 5)

mysql 子查詢 排序 MySQL的子查詢中排序

起因 create table reading record id int primary key auto increment,自增主鍵 file varchar 255 閱讀檔名 user varchar 255 讀者 expend int,閱讀時長 time datetime,閱讀時間 一開始...

mysql中IN子查詢排序

這幾天做乙個查詢,需要在乙個指定的結果集中進行查詢,例如 select from table name where doc id in 1dba c20a 907b 其中in子句中的doc id列表是通過呼叫乙個外部介面獲得一組doc id常量列表,然後在本地庫中搜尋符合這個列表的資料 記錄。後來發...

mysql的in查詢與union all 查詢

mysql會對sql語句做優化,in 後面的條件不超過一定數量仍然會使用索引。mysql 會根據索引長度和in後面條件數量判斷是否使用索引。另外,如果是in後面是子查詢,則不會使用索引。乙個文章庫,裡面有兩個表 category和article。category裡面有10條分類資料。article裡...