本文共 2707 字,大约阅读时间需要 9 分钟。
length(str)
和 char_length(str)
是用于计算字符串长度的函数。
length(str)
:默认一个汉字的长度为2。char_length(str)
:精确计算一个汉字的长度。示例:
mysql> select length('刘顺祥');| 6 |mysql> select char_length('刘顺祥');| 3 |
concat
和 concat_ws
用于将多个字符串连接起来。
concat(str1, str2, ...)
: 任意一个元素为 NULL,返回值为 NULL。concat_ws(separator, str1, str2, ...)
: 指定某个字符为分隔符。示例:
mysql> select concat('My', 'SQL');| MySQL |mysql> select concat_ws(' ', 'My', 'SQL');| My SQL |
locate
, position
和 instr
用于查找子字符串的位置。
locate(substr, str, pos)
: 从 pos 开始查找 substr 在 str 中首次出现的位置。position(substr in str)
: 返回 substr 在 str 中首次出现的位置。instr(str, substr)
: 返回 str 中 substr 的起始位置。示例:
mysql> select locate('@', '123456@789');| 7 |mysql> select position('@' in '123456@789');| 7 |
lpad
和 rpad
用于在字符串两端填补字符。
lpad(str, len, padstr)
: 在 str 左边填补 padstr,总长度为 len。rpad(str, len, padstr)
: 在 str 右边填补 padstr,总长度为 len。示例:
mysql> select lpad('My', 5, 'SQL');| SQLMy |mysql> select rpad('My', 5, 'SQL');| MySQL |
left
, right
, substring
, mid
, 和 substring_index
用于截取字符串。
left(str, len)
: 截取 str 的前 len 个字符。right(str, len)
: 截取 str 的后 len 个字符。substring(str, startpos, len)
: 从 startpos 开始截取 len 个字符。mid(str, startpos, len)
: 从 startpos 开始截取 len 个字符。substring_index(str, delimiter, count)
: 返回第 count 个出现 delimiter 的子串。示例:
mysql> select left('liushunxiang', 3);| liu |mysql> select right('liushunxiang', length('liushunxiang') - 3);| shunxiang |
rtrim
, ltrim
, 和 trim
用于去除字符串的前后空格或指定字符。
rtrim(str)
: 去除 str 的末尾空格。ltrim(str)
: 去除 str 的开头空格。trim(str)
: 去除 str 的前后空格,默认排除首尾 remstr。示例:
mysql> select trim(' name ');| name |
space(n)
用于生成 n 个空格。
示例:
mysql> select concat(space(20), 'name');| name |
replace
和 insert
用于替换字符串。
replace(str, from_str, to_str)
: 用 to_str 替换 from_str。insert(str, pos, len, newstr)
: 从 pos 开始的 len 个字符被 newstr 替换。示例:
mysql> select replace('123456@qq.com', 'qq', '163');| 123456@163.com |
repeat(str, count)
用于重复字符串。
示例:
mysql> select repeat(' ', 20);| |
reverse(str)
用于翻转字符串。
示例:
mysql> select reverse('mysql');| lqsym |
elt(n, str1, str2, ...)
: 类似于 R 中的 switch 函数,n 为索引,若 n 不在范围内则返回 NULL。
示例:
mysql> select elt(1, 'liu', 'shun', 'xiang');| liu |
field(str, str1, str2, ...)
用于返回 str 在字段列表中的索引。
示例:
mysql> select field('liu', 'liu', 'shun', 'xiang');| 1 |
upper
, ucase
, lower
, 和 lcase
用于转换字符串大小写。
upper(str)
: 转换为大写。ucase(str)
: 转换为大写,默认不改变大小写。lower(str)
: 转换为小写。lcase(str)
: 转换为小写,默认不改变大小写。示例:
mysql> select upper('liushunxiang');| LIUSHUNXIANG |
load_file(file_path)
用于读取文件内容并返回字符串。
示例:
mysql> select load_file('path/to/file.txt');
本文为 MySQL 字符串函数的详细参考手册,涵盖了 length、concat、locate、lpad 等多个常用函数及其示例应用。
转载地址:http://txbfk.baihongyu.com/