嗨,我有100條記錄在我的SQL表我想通過名字對它們進行排序ASC,但我需要所有的記錄NR 43如何把行放在mysql查詢的頂部。
的頂部一個紀錄是有辦法可以拉這個記錄43首,然後一切ASC按名稱排序?
訣竅是在一個查詢中做到這一點。
嗨,我有100條記錄在我的SQL表我想通過名字對它們進行排序ASC,但我需要所有的記錄NR 43如何把行放在mysql查詢的頂部。
的頂部一個紀錄是有辦法可以拉這個記錄43首,然後一切ASC按名稱排序?
訣竅是在一個查詢中做到這一點。
使用此:
ORDER BY CASE WHEN (record is 43) THEN 0 ELSE 1 END, Name
沒有工會或情況需要:
ORDER BY id = 43 DESC, name ASC
超級,這正是我正在尋找的,我可以確認它的作品! – Tim
@sqwk Upvote帶來簡單的解決方案.. –
此查詢應該添加一個名爲優先列,其值爲1的記錄與所有ID 43和0其他。然後你先按優先級排序。
SELECT mytable.*, IF(id = 43, 1, 0) AS priority FROM mytable ORDER BY priority DESC, name ASC
看到這個http://stackoverflow.com/questions/16568/how-to-select-the-nth-row-in-a-sql-database-table –