mysql自定義函式field

2021-07-09 06:08:45 字數 865 閱讀 3558

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 語句呼叫。自定義函式與儲存過程之間存在幾點區...