MySQL函数学习-----字符串函数
Posted hmpn的博客园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL函数学习-----字符串函数相关的知识,希望对你有一定的参考价值。
一、MySQL 字符串函数
\\ | 函 数 名 称 | 作 用 | 完 成 |
---|---|---|---|
1 | LENGTH |
计算字符串字节 长度 |
勾 |
2 | CONCAT |
合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个 | 勾 |
3 | INSERT |
替换字符串函数 | 勾 |
4 | LOWER |
将字符串中的字母转换为小写 | 勾 |
4 | UPPER |
将字符串中的字母转换为大写 | 勾 |
5 | LEFT |
从左侧字截取符串,返回字符串左边的若干个字符 | 勾 |
5 | RIGHT |
从右侧字截取符串,返回字符串右边的若干个字符 | 勾 |
6 | TRIM |
删除字符串左右两侧的空格 | 勾 |
7 | REPLACE |
字符串替换函数,返回替换后的新字符串 | 勾 |
8 | SUBSTRING |
截取字符串,返回从指定位置开始的指定长度的字符换 | 勾 |
9 | REVERSE |
字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串 | 勾 |
1. CHAR_LENGTH、CHARACTER_LENGTH、LENGTH、OCTET_LENGTH 、BIT_LENGTH、~~UNCOMPRESSED_LENGTH~~
以上函数唯一参数都为
字段名
或字符串
CHAR_LENGTH
等同于CHARACTER_LENGTH
:用于计算字符串的字符长度LENGTH
等同于OCTET_LENGTH
: 用于计算字符串的字节长度BIT_LENGTH
:用于计算字符串位数
在第一行中,“三体第二部 ”中一个汉字占三个字节,表一个字符,空格或数字字母也算一个字符,所以字符长度为6;
但空格或数字字母只占一个字节,所以字节长度为16(15 + 1);
位数没什么好说的,这里采用的是utf8,乘8;
2. CONCAT、CONCAT_WS、GROUP_CONCAT
CONCAT
与CONCAT_WS
都能拼接多个字符串。
CONCAT
与CONCAT_WS
的区别主要在于:- concat只是单纯的将各字符串连接出来,而concat_ws指定了唯一分隔符(第一个参数)
- 在mysql中,concat拼接数组中若有null值,则拼接字符串结果为null; 而concat_ws只会将null值的字符串忽略,最终拼接字符结果不会为null(除非拼接的全为null)。所以一般情况下能不使用concat就不使用concat,避免某字段值为null导致最终值为null
GROUP_CONCAT
要搭配GROUP BY来使用,将某一分组的字段的所有拼接一起,可排序
,可使用separator
指定分隔符。 与concat_ws一样,若某字段为null,最终结果只会忽略该字段,不会为null。
3. INSERT
INSERT(str,pos,len,newstr)
:
str表处理的初始字符串,pos表从str的第几位开始插入,len表插入的长度,newstr表插入的字符串。
- 可以理解为该函数为,把str的第pos位~len为替换为newstr
- 当pos超过str长度时,会直接返回str作为结果。
- 当len超过str长度时,会将pos位往后的替换为newstr
LAST_INSERT_ID(): 获取最后插入的ID值
4. LOWER、UPPER
字符串大小写的相互转换
5. LEFT、RIGHT
取字符串从最左/右的若干各字符
6. TRIM
TRIM(BOTH FROM str)
等同于TRIM(str)
::删除左右俩侧空格
TRIM(LEADING FROM str)
等同于LTRIM(str)
: 删除左侧空格
TRIM(TRAILING FROM str)
等同于RTRIM(str)
: 删除右侧空格
7. REPLACE
REPLACE(str,from_str,to_str)
: 将str字符串中的from_str字符串替换为to_str
- from_str和to_str不能为null,否则直接返回结果值为null。
8. SUBSTRING
SUBSTRING(str,pos)
等同于SUBSTRING(str from pos)
: 取str第pos个字符后的字符串
SUBSTRING(str,pos,len)
等同于SUBSTRING(str from pos for len)
: 取str第pos个字符后长度为len的字符串
- pos为正数时表从第pos个字符开始取
- pos为负数时表从倒数第pos个字符开始取
SUBSTRING_INDEX(str,delim,count)
: delim为分隔符,取str第count个分隔符前字符串
9. REVERSE
REVERSE(str)
:反转字符串
以上是关于MySQL函数学习-----字符串函数的主要内容,如果未能解决你的问题,请参考以下文章