MySQL自定義查詢字段排序


同事在做抽獎排名的時候有個問題 需要按照

一等獎

二等獎

三等獎

未中獎

的形式輸出數據

問到我如何排序。

數據庫設計如下 用一個prize_code字段標示了是否中獎 1是一等獎 2是二等獎 3是三等獎 0是未中獎

思考許久 本來開始想用union 寫出SQL如下

select * from 
    (SELECT * FROM data where prize_code>0 order by prize_code asc) 
as tmp
UNION
select * from data where prize_code=0;

查詢結果如下:

然后同事覺得太復雜 不好理解 ,后來我說提供用分兩次查詢的方式交給php處理排序 ,然后他說 那樣不利於分頁 而且邏輯復雜了,於是我想到不如自定義排序

最終解決如下:

SELECT * FROM data order by field(prize_code,1,2,3,0);

查詢結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM