MySQL自定義查詢字段排序

2022-03-20 15:05:18 字數 746 閱讀 8177

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

一等獎二等獎

三等獎未中獎

的形式輸出資料

問到我如何排序。

資料庫設計如下 用乙個prize_code欄位標示了是否中獎 1是一等獎 2是二等獎 3是三等獎 0是未中獎

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

select

*from

(select

*from data where prize_code>

0order

by prize_code asc

) as

tmpunion

select

*from data where prize_code=

0;

查詢結果如下:

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

最終解決如下:

select

*from data order

by field(prize_code,1,2,3,0);

查詢結果如下:

mysql查詢字段排序 mysql 排序查詢字段

mysql 排序查詢字段 閱讀 504 排序查詢 語法 select 查詢欄位1 from 表 where 篩選條件 order by 要排序欄位2 asc公升序 desc 降序,要排字段3 asc公升序 desc降序 如果不寫預設為公升序 案例 查詢員工資訊,要求工資從高到低排序 select f...

mysql中欄位自定義排序

今天專案中遇到乙個對sql查詢結果需要按欄位 自定義 排序的問題。如 預設是 0,1,2。結果為 1,0,2或 1,2,0 mysql 中使用 field field 注 第乙個field為關鍵字,field 為要指定的字段。select t.from tbl obj order t order b...

mysql資料自定義排序查詢

以前做查詢排序,以某個字段進行排序,但是需求需要的順序和字段的順序不一致。例如 status欄位有值1,2,3 需求是排序2,1,3.那通常使用的order by status asc desc 就失去了效果。方法1 order by field is audit,2,1,3 asc 方法2 ord...