mysql自定義排序

場景

業(yè)務(wù)需要,優(yōu)惠券列表要求按類型進(jìn)行排序,但是,類型并不是順序的,即order by是解決不了問題的

建表

CREATE TABLE `custom_sort`  (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NOT NULL,
  `type` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `so`(`type`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_german2_ci ROW_FORMAT = Dynamic;

插入數(shù)據(jù)

INSERT INTO `custom_sort` VALUES (1, '劉一', 1);
INSERT INTO `custom_sort` VALUES (2, '陳二', 2);
INSERT INTO `custom_sort` VALUES (3, '張三', 3);
INSERT INTO `custom_sort` VALUES (4, '李四', 2);
INSERT INTO `custom_sort` VALUES (5, '王五', 5);
INSERT INTO `custom_sort` VALUES (6, '趙六', 0);
INSERT INTO `custom_sort` VALUES (7, '孫七', 7);

表結(jié)構(gòu)數(shù)據(jù)

image

解決方案

field函數(shù)

SELECT * FROM `custom_sort` ORDER BY FIELd(type,1,3) desc,type

case when then

SELECT * FROM `custom_sort` ORDER BY CASE WHEN type= 3 THEN 0 WHEN type= 1 THEN 1 else 2 END ,type asc

查詢結(jié)果

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 大家都知道, MySQL 中按某字段升序排列的 SQL 為 (以 id 為例, 下同):SELECT * FROM...
    帝Bug閱讀 885評論 0 0
  • 遇到個這樣的需求,前臺一個列表數(shù)據(jù),有個枚舉值platform,里面有如下圖所示4個值,db里面分別是0,1,2,...
    老胡聊聊天閱讀 1,262評論 0 0
  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,335評論 0 7
  • 表 存儲在表中的數(shù)據(jù)是同一種類型的數(shù)據(jù)或清單。 數(shù)據(jù)庫中的表有為一個名字來標(biāo)識自己。 表具有一些特性,這些特性定義...
    蛐蛐囍閱讀 1,476評論 0 7
  • 打小就被教育:少說廢話。其實廢話未必真廢。 廢話,即意義很小的話,或大家都知道而又重復(fù)的話,或?qū)Ξ?dāng)下的事沒有任何正...
    靜靜的酒窩閱讀 576評論 1 1

友情鏈接更多精彩內(nèi)容