一、排序
1.1ORDER BY FIELD(column,value1,value2,value3...)
指定序列對結果進行排序
例子
CREATE TABLE `course` (
`CId` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`Cname` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TId` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`CId`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `course` VALUES ('01', '語文', '02');
INSERT INTO `course` VALUES ('02', '數學', '01');
INSERT INTO `course` VALUES ('03', '英語', '03');
不加排序的結果:
| CID | TID | CName |
|---|---|---|
| 01 | 語文 | 02 |
| 02 | 數學 | 01 |
| 03 | 英語 | 03 |
加入排序:
SELECT Cname FROM course ORDER BY FIELD(Cname,'數學','英語','語文');
結果:

order by field
如果表中的結果在給定的序列內找不到,則會出現(xiàn)在查詢結果的首個位置

image.png
SELECT Cname FROM course ORDER BY FIELD(Cname,'數學','英語','語文');
體育會出現(xiàn)在第一個位置

體育會出現(xiàn)在第一個位置
二、替換
2.1 IFNULL(str1,str2)
如果str1的值為
null,則會替換為str2
例子:

其中一個Cname為null
SELECT IFNULL(Cname,'空') AS Cname FROM course ORDER BY FIELD(Cname,'數學','英語','語文');

2.2 IF(str1,str2,str3)
類似于三元運算符,str1是一個返回Boolean值的表達式,如果為true則返回str2,否則str3

IF(str1,str2,str3)