MySQL--简单的函数

一、排序

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

如果表中的结果在给定的序列内找不到,则会出现在查询结果的首个位置


image.png
SELECT Cname FROM course ORDER BY FIELD(Cname,'数学','英语','语文');

体育会出现在第一个位置


体育会出现在第一个位置

二、替换

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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。