MySql常用字符串函数
1 建表语句
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
`EMPNO` int(4) NOT NULL,
`ENAME` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`JOB` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`MGR` int(4) NULL DEFAULT NULL,
`HIREDATE` date NULL DEFAULT NULL,
`SAL` double(7, 2) NULL DEFAULT NULL,
`COMM` double(7, 2) NULL DEFAULT NULL,
`DEPTNO` int(2) NULL DEFAULT NULL,
PRIMARY KEY (`EMPNO`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `emp` VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800.00, NULL, 20);
INSERT INTO `emp` VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600.00, 300.00, 30);
INSERT INTO `emp` VALUES (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250.00, 500.00, 30);
INSERT INTO `emp` VALUES (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975.00, NULL, 20);
INSERT INTO `emp` VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250.00, 1400.00, 30);
INSERT INTO `emp` VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850.00, NULL, 30);
INSERT INTO `emp` VALUES (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450.00, NULL, 10);
INSERT INTO `emp` VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000.00, NULL, 20);
INSERT INTO `emp` VALUES (7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000.00, NULL, 10);
INSERT INTO `emp` VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500.00, 0.00, 30);
INSERT INTO `emp` VALUES (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100.00, NULL, 20);
INSERT INTO `emp` VALUES (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950.00, NULL, 30);
INSERT INTO `emp` VALUES (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000.00, NULL, 20);
INSERT INTO `emp` VALUES (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300.00, NULL, 10);
SET FOREIGN_KEY_CHECKS = 1;
2.拼接多个字段
2.1 语法
CONCAT_WS(分隔符,s1,s2...sn)
2.2 示例sql语句
SELECT concat_ws(",",empno,ename,hiredate)
FROM emp
2.3 运行截图
3 返回指定子字符串第一次出现的字符串内的索引
3.1 语法
LOCATE(子字符串,字符串)
3.2 示例sql语句
SELECT LOCATE('a',ename),ename
FROM emp
3.3 运行截图
4 字符串所有字母大写转小写
4.1 语法
LOWER(字段名)
4.2 示例sql语句
SELECT LOWER(ename),ename
FROM emp
4.3 运行截图
5 字符串所有字母小写转大写
5.1 语法
UPPER(字段名)
5.2 示例sql语句
SELECT UPPER(ename),ename
FROM emp
5.3 运行截图
6 去除字符串左右两边的空格
6.1 语法
trim(s)
6.2 示例sql语句
SELECT trim(' zhangsan ')
FROM dual
6.3 运行截图
7 返回字符串的前几个字符
7.1 语法
LEFT(s,n)
7.2 示例sql语句
SELECT LEFT(ename,2),ename
FROM emp
7.3 运行截图
8 返回字符串的后几个字符
8.1 语法
RIGHT(s,n)
8.2 示例sql语句
SELECT RIGHT(ename,2),ename
FROM emp
8.3 运行截图
9 截取字符串
9.1 语法
SUBSTR(s, start, length)
9.2 示例sql语句
SELECT SUBSTR(ename,2,2),ename
FROM emp
9.3 运行截图
10 同一列数据拼接到同一行上
10.1 语法
group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'])
10.2 示例sql语句
SELECT deptno,group_concat(ename ORDER BY ename asc)
FROM emp
GROUP BY deptno
10.3 运行截图