一、字符串大小写转换
select lower('SQL Course');select upper('Use MYsql');
二、字符串拼接
select concat('My','S','QL');
如果参数中有null拼接返回null,如果有数字会转换成字符
三、使用管道连接符 “||”
select s_no || s_name || s_age from student;
基本作用与concat类似,但是需要配置PIPES_AS_CONCAT,如果不配置, || 默认是or的意思,查询结果是一列显示是1
三、将多个字符串参数以给定的分隔符separator首尾相连后返回
select concat_ws(';','First name','Second name','Last name');
结果为First name;Second name;Last name 。如果某个参数为null,拼接时会自动忽略。
四、截取字符串
select substring('hello world',5);o worldselect substr('hello world',5,3);o w
select substr('hello world',-5);world
- len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起。
- 函数SUBSTR()是函数SUBSTRING()的同义词。
五、获取字符串存储长度
select length('text'),length('你好');
注意:编码方式不同字符串的存储长度就不一样(‘你好’:utf8是6,gbk是4)
六、返回字符串中的字符个数
select char_length('text'),char_length('你好');
char_length
七、从源字符串str中返回子串substr第一次出现的位置
select instr('foobarbar','bar');
八、在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串
select lpad('hi',5,'??');
九、在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串
select rpad('hi',6,'??');
十、从源字符串str中去掉两端、前缀或后缀字符remstr并返回
select trim(' bar '); bar select trim(leading 'x' from 'xxxbarxxx'); barxxx select trim(both 'x' from 'xxxbarxxx'); bar select trim(trailing 'xyz' from 'barxxyz'); barx
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str):
如果不指定remstr,则去掉str两端的空格;
不指定BOTH、LEADING、TRAILING ,则默认为 BOTH。
十一、字符串替换
select replace('www.mysql.com','w','Ww');
在源字符串str中查找所有的子串form_str(大小写敏感),找到后使用替代字符串to_str替换它。返回替换后的字符串
十二、去掉字符串的左边或右边的空格(左对齐、右对齐)
SELECT ltrim(' barbar ') rs1, rtrim(' barbar ') rs2;
十三、将字符串str重复count次后返回
select repeat('MySQL',3);
十四、将字符串str反转后返回
select reverse('abcdef');
十五、字符编码转字符串
select char(77,121,83,81,'76'),char(77,77.3,'77.3');
CHAR(N,... [USING charset_name]):将每个参数N解释为整数(字符的编码),并返回每个整数对应的字符所构成的字符串(NULL值被忽略)。
十六、格式化数字
mysql> SELECT format(12332.123456, 4),format(12332.2,0); +-------------------------+-------------------+ | format(12332.123456, 4) | format(12332.2,0) | +-------------------------+-------------------+ | 12,332.1235 | 12,332 | +-------------------------+-------------------+ mysql> SELECT format(12332.2,2,'de_DE'); +---------------------------+ | format(12332.2,2,'de_DE') | +---------------------------+ | 12.332,20 | +---------------------------+
FORMAT(X,D[,locale]):以格式‘#,###,###.##’格式化数字X
D指定小数位数
locale指定国家语言(默认的locale为en_US)
十七、返回由N个空格构成的字符串
select space(3);
十八、返回最左边、最右边的len长度的子串
select left('chinaitsoft',5),right('chinaitsoft',5);
china tsoft
十九、比较字符串
mysql> SELECT strcmp('text', 'text'),strcmp('text', 'text2'),strcmp('text2', 'text'); +-------------------------+-------------------------+-------------------------+ | strcmp('text', 'text') | strcmp('text', 'text2') |strcmp('text2', 'text') | +-------------------------+-------------------------+-------------------------+ | 0 | - 1 | 1 | +-------------------------+-------------------------+-------------------------+
如果两个字符串是一样的则返回0;如果第一个小于第二个则返回-1;否则返回1