一、排序
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,'数学','英语','语文');
结果:
如果表中的结果在给定的序列内找不到,则会出现在查询结果的首个位置
SELECT Cname FROM course ORDER BY FIELD(Cname,'数学','英语','语文');
体育会出现在第一个位置
二、替换
2.1 IFNULL(str1,str2)
如果str1的值为
null
,则会替换为str2
例子:
SELECT IFNULL(Cname,'空') AS Cname FROM course ORDER BY FIELD(Cname,'数学','英语','语文');
2.2 IF(str1,str2,str3)
类似于三元运算符,str1是一个返回Boolean值的表达式,如果为true则返回str2,否则str3