iT邦幫忙

0

mysql指定某些排序到第幾個位置、其他順著填滿

  • 分享至 

  • xImage

標題有點怪怪的
內文重新問好了

舉例請問:
A~Z依照順序排序
但是ABC的位置分別在第4、8、12的位置
D之後的順著放在1、2、3、5、6、7、9、10、11、13、14、15、16.......依此類推填滿

要像這樣將mysql的搜尋結果排位置的話請問該如何寫?
還是乾脆輸出後再用php依序排成html比較快?

/images/emoticon/emoticon06.gif

石頭 iT邦高手 1 級 ‧ 2019-03-12 12:07:39 檢舉
請問 你Mysql版本是?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2019-03-12 08:53:55
最佳解答
louischou iT邦新手 4 級 ‧ 2019-03-12 09:20:06 檢舉

果然只剩這招嘛......
這樣的話還不如乖乖用PHP if else排一下比較順
多謝

0
純真的人
iT邦大師 1 級 ‧ 2019-03-11 22:19:51

就放在order by case 欄位 when 'A' then 4 when 'B' then 8 when 'C' then 12 else 0 end

呃...大大,這很顯然不行啊,你else 0,順序不就變成[DEF~XYZ]ABC了?(ABC在最後面,括號內D~Z會照系統自己喜歡去排序) (因為原提問似乎有調整過,這回答也可能是按原提問給的,這邊保留)

張小馬~
哈~那就是全部A~Z都要設定排序了~
就像海綿寶寶

thwu iT邦新手 4 級 ‧ 2019-03-12 11:23:11 檢舉

或是自訂一個表格,包含 【英文字母】和【順序】欄位,再 JOIN 這張表格後 ORDER BY【順序】。

優點是可以讓其他 SELECT 共同使用,好維護/變更順序(不需更改 SQL 或 PHP,改表格值就好)
缺點是多一個表格 :P

我要發表回答

立即登入回答