ASCII(s): 返回 字段 的第一个字符的 ASCII 码。 Age: select ASCII(code) as NumCodeOfFristChar from students;
CHAR_LENGTH(s) 等同 CHARACTER_LENGTH(s): 返回 字段 的字符数 Age: select CHAR_LENGTH(code) as LengOfString from students; select CHARACTER_LENGTH(code) as LengOfString from students;
CONCAT(s1,s2): 多个字符串合并为一个字符串 age: select concat(id,code) as id_code from students;
CONCAT_WS(x, s1,s2…sn): 同 CONCAT函数,但是每个字符串之间要加上 x,x 可以是分隔符 age: select concat_ws(’_’,id,code) as id_code from students;
FIELD(s,s1,s2…): 返回第一个字符串 s 在字符串列表(s1,s2…)中的位置 age: select FIELD(‘wangxue’,code,name) from students;
FIND_IN_SET(s1,s2): 返回在字符串s2中与s1匹配的字符串的位置 age: select FIND_IN_SET(‘a’,‘c,a,d’) ; age: select * from students where FIND_IN_SET(2,class);
FORMAT(x,n) 函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入。 age: select FORMAT(weight,1) as weight from students;
INSERT(s1,x,len,s2): 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串 age: select INSERT(code,1,2,name) from students; 分析 : 从1代理起始位置,并非0.
LOCATE(s1,s): 从字符串 s 中获取 s1 的开始位置 age: select * from students where locate(‘HangXue’,name) > 0; 分析: 可以替代like,这个可以走索引,查询更快。
LCASE(s): 将字符串 s 的所有字母变成小写字母 age: select lcase(name) from students ;
LOWER(s): 将字符串 s 的所有字母变成小写字母 age: select LOWER(name) from students ;
UCASE(s): 将字符串 s 的所有字母变成大写字母 age: select UCASE(name) from students ;
UPPER(s): 将字符串 s 的所有字母变成大写字母 age: select UPPER(name) from students ;
LEFT(s,n): 返回字符串 s 的前 n 个字符 age: select left(code,2) from students;
RIGHT(s,n): 返回字符串 s 的后 n 个字符 age: select right(code,2) from students;
LPAD(s1,len,s2): 在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len age: select lpad(code,8,name) from students;
RPAD(s1,len,s2): 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len age: select rpad(code,8,name) from studennts;
LTRIM(s): 去掉字符串 s 开始处的空格 age: select ltrim(code) from students;
RTRIM(s): 去掉字符串 s 结尾处的空格 age: select rtrim(code) from students;
TRIM(s): 去掉字符串 s 开始和结尾处的空格 age : select TRIM(code) from students;
MID(s,n,len): 从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len) age: select mid(code,2,4) from students;
POSITION(s1 IN s): 从字符串 s 中获取 s1 的开始位置 age: select position(‘ng’ in name) from students;
REPEAT(s,n): 将字符串 s 重复 n 次 age: select repeat(code,2) from students;
REPLACE(s,s1,s2): 将字符串 s2 替代字符串 s 中的字符串 s1 age : select replace(code,‘SN’,‘abc’) from students;
REVERSE(s): 将字符串s的顺序反过来 age: select reverse(code) from students;
SPACE(n): 返回n个空格 age: select space(3) from students;
SUBSTR(s, start, length) 等同 SUBSTRING(s, start, length): 从字符串 s 的 start 位置截取长度为 length 的子字符串 age: select substr(code,2,4) from students;
SUBSTRING_INDEX(s, delimiter, number): 返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。 如果 number 是正数,返回第 number 个字符左边的字符串。 如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。 age: SELECT SUBSTRING_INDEX(‘ab’,’’,1) – a SELECT SUBSTRING_INDEX(‘ab’,’’,-1) – b SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘abcde’,’’,3),’’,-1) – c
##案例SQL表/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50726
Source Host : localhost:3306
Source Schema : wang_test
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 21/06/2021 18:32:54
*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS =0;-- ------------------------------ Table structure for students-- ----------------------------DROPTABLEIFEXISTS`students`;CREATETABLE`students`(`id`int(10)UNSIGNEDNOTNULLAUTO_INCREMENT,`code`varchar(50)CHARACTERSET utf8 COLLATE utf8_bin NOTNULLDEFAULT'0'COMMENT'编号',`name`varchar(50)CHARACTERSET utf8 COLLATE utf8_bin NULLDEFAULTNULLCOMMENT'性名',`class`varchar(250)CHARACTERSET utf8 COLLATE utf8_bin NULLDEFAULTNULLCOMMENT'选的课1.语文,2.数学,3.english,4.体育',`weight`double(10,3)NULLDEFAULTNULLCOMMENT'体重',PRIMARYKEY(`id`)USINGBTREE)ENGINE= MyISAM AUTO_INCREMENT=3CHARACTERSET= utf8 COLLATE= utf8_bin ROW_FORMAT = Dynamic;-- ------------------------------ Records of students-- ----------------------------INSERTINTO`students`VALUES(1,'SN0001','WangXue','2,3',113.568);INSERTINTO`students`VALUES(2,'SN0002','ZHangXue','1,3,4',98.435);SET FOREIGN_KEY_CHECKS =1;