hmpn

一、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~~

以上函数唯一参数都为字段名字符串

1_length.jpg


  • CHAR_LENGTH等同于CHARACTER_LENGTH:用于计算字符串的字符长度
  • LENGTH等同于OCTET_LENGTH: 用于计算字符串的字节长度
  • BIT_LENGTH:用于计算字符串位数

在第一行中,“三体第二部 ”中一个汉字占三个字节,表一个字符,空格或数字字母也算一个字符,所以字符长度为6;
但空格或数字字母只占一个字节,所以字节长度为16(15 + 1);
位数没什么好说的,这里采用的是utf8,乘8;


2. CONCAT、CONCAT_WS、GROUP_CONCAT

2_concat与concat_ws.jpg


  • CONCATCONCAT_WS都能拼接多个字符串。
  • CONCATCONCAT_WS的区别主要在于:
    • concat只是单纯的将各字符串连接出来,而concat_ws指定了唯一分隔符(第一个参数)
    • 在mysql中,concat拼接数组中若有null值,则拼接字符串结果为null; 而concat_ws只会将null值的字符串忽略,最终拼接字符结果不会为null(除非拼接的全为null)。所以一般情况下能不使用concat就不使用concat,避免某字段值为null导致最终值为null

2_group_concat.jpg


  • GROUP_CONCAT 要搭配GROUP BY来使用,将某一分组的字段的所有拼接一起,可排序,可使用separator指定分隔符。 与concat_ws一样,若某字段为null,最终结果只会忽略该字段,不会为null。

3. INSERT

INSERT(str,pos,len,newstr):
str表处理的初始字符串,pos表从str的第几位开始插入,len表插入的长度,newstr表插入的字符串。

3_INSERT.jpg


  • 可以理解为该函数为,把str的第pos位~len为替换为newstr
  • 当pos超过str长度时,会直接返回str作为结果。
  • 当len超过str长度时,会将pos位往后的替换为newstr

LAST_INSERT_ID(): 获取最后插入的ID值


4. LOWER、UPPER

字符串大小写的相互转换

4_LOWER与UPPER.jpg


5. LEFT、RIGHT

取字符串从最左/右的若干各字符

5_LEFT与RIGHT.jpg


6. TRIM

TRIM(BOTH FROM str) 等同于 TRIM(str)::删除左右俩侧空格
TRIM(LEADING FROM str) 等同于 LTRIM(str): 删除左侧空格
TRIM(TRAILING FROM str) 等同于 RTRIM(str): 删除右侧空格


6_TRIM.jpg


7. REPLACE

REPLACE(str,from_str,to_str): 将str字符串中的from_str字符串替换为to_str

7_REPLACE.jpg


  • 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的字符串

8_SUBSTRING.jpg


  • pos为正数时表从第pos个字符开始取
  • pos为负数时表从倒数第pos个字符开始取

SUBSTRING_INDEX(str,delim,count): delim为分隔符,取str第count个分隔符前字符串

8_SUBSTRING_INDEX.jpg


9. REVERSE

REVERSE(str):反转字符串

9_REVERSE.jpg


相关文章: