mysql可以通過field()函式自定義排序,格式:field(value,str1,str2,str3,str4),value與str1、str2、str3、str4比較,返回1、2、3、4,如遇到null或者不在列表中的資料則返回0. 這個函式好像oracle中沒有專門提供(也可能是我沒有用到),不過自己實現這樣乙個函式還是比較簡單的。
mysql> select * from 表名 order by field(id,4,2,3,1);
+——–+——–+————+——-+
| id | name
+——–+——–+————+——-+
| 4 |
| 2 |
| 3 |
| 1 |
+——–+—— -+————+——-+
那麼它就會按照id為4,2,3,1的順序排序。也可以使用desc倒序
mysql> select * from 表名 order by field(id,1,4,2,3) desc;
+——–+——–+————+——-+
| id | name
+——–+——–+————+——-+
| 3 |
| 2 |
| 4 |
| 1 |
+——–+—— -+————+——-+
應用:
查詢文章表table,取出所有文章,置頂id為1、5、12、2的文章,並按上述順序顯示。
解決:select * from `table`order by field(`zj`,1,5,12,2) desc,`time` desc
MySQL使用FIELD 函式自定義排序
在日常開發過程中,排序是經常用到的,有時候有這樣的需求 需要在查詢結果中根據某個欄位的具體值來排序 如下例子 表名 tb idname ageclass 1iris 16a0 2iris 15a1 3seiki 15a2 4seiki 16a2 5xuding 16a1 6ben 16a0 7ben...
marshmallow之自定義Field
有三種方式建立自定義的 field。建立 field 類的子類 建立繼承自marshmallow.fields.field類的子類並實現 serialize和 或 deserialize方法 from marshmallow import fields,schema class titlecased...
mysql自定義函式優點 MySQL自定義函式
在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...