資料庫有列store儲存商城名字,現在想讓商城為淘寶,亞馬遜排在前面,其餘商城依資料建立時間排序,而且需要分頁。
有想方案
一mysql有提供按field排序的方法,但是filed必須包含資料庫已存在的所有商城類型,不然沒包括的會打亂排序,但是store下的商城(比如日亞等等)會陸續增加,所以這條sql語句就要持續改變了。於是想請教有沒有什麼很好的方案。
二 增加一個字段對應store的數字id,按數字id排序,但是產品現在是想讓 淘寶,亞馬遜排在前面,但是朝令夕改想讓日亞排在前面,那這套邏輯豈不是打亂了。
請教各位有什麼好的方案。
資料庫有列store儲存商城名字,現在想讓商城為淘寶,亞馬遜排在前面,其餘商城依資料建立時間排序,而且需要分頁。
有想方案
一mysql有提供按field排序的方法,但是filed必須包含資料庫已存在的所有商城類型,不然沒包括的會打亂排序,但是store下的商城(比如日亞等等)會陸續增加,所以這條sql語句就要持續改變了。於是想請教有沒有什麼很好的方案。
二 增加一個字段對應store的數字id,按數字id排序,但是產品現在是想讓 淘寶,亞馬遜排在前面,但是朝令夕改想讓日亞排在前面,那這套邏輯豈不是打亂了。
請教各位有什麼好的方案。
這個問題得兩個欄位:一個是weight(權重),一個是 sort(排序欄位),
你這樣子
淘寶: weight: 100 sort: 1,
亞馬遜:weith: 100 sort: 2,
日亞: weight: 100 sort: 3
其他: weight: 1 sort: 1
...
你的 sql 這麼寫:select * from table order by weight * sort
,這樣就解決了。如果要改權限的話,可以調整 weight,也可以改 sort
複雜邏輯排序,不要在資料庫層,應該放到程式碼層,例如放到一個可排序的陣列或是map裡,自己定義排序規則即可,jdk很多排序的陣列和map