字符串函数用于处理文本内容,例如计算长度、拼接字符串、替换内容、查找子串等。在用户名处理、格式化展示、模糊匹配和数据清洗场景中非常常见。
MySQL 中常见的两个相关函数是:
CHAR_LENGTH():返回字符个数LENGTH():返回字节长度
示例:
SELECT CHAR_LENGTH('mysql');
SELECT LENGTH('mysql');
SELECT CHAR_LENGTH('你好');
SELECT LENGTH('你好');对于英文字符串,这两个函数的结果通常一致;但对于中文等多字节字符,CHAR_LENGTH() 和 LENGTH() 的结果可能不同。
CONCAT() 用于合并多个字符串:
SELECT CONCAT('My', 'SQL');
SELECT CONCAT('姓名:', '张三');也可以用于拼接表字段:
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employee;这类函数经常用于生成展示文本、组合地址、拼接说明信息等。
REPLACE() 用于替换字符串中的指定内容。
SELECT REPLACE('I like MySQL', 'MySQL', 'MariaDB');如果想批量处理表中的字符串内容,也可以这样使用:
SELECT title, REPLACE(title, '旧版', '新版') AS new_title
FROM article;STRCMP() 用于比较两个字符串。
SELECT STRCMP('abc', 'abc');
SELECT STRCMP('abc', 'abd');
SELECT STRCMP('abd', 'abc');通常返回:
0:两个字符串相等-1:第一个字符串小于第二个1:第一个字符串大于第二个
虽然在业务 SQL 中更常直接使用 =、<> 进行比较,但 STRCMP() 在一些显式比较场景中仍然有用。
常见的查找函数之一是 INSTR(),用于返回子串第一次出现的位置。
SELECT INSTR('hello mysql', 'mysql');
SELECT INSTR('hello mysql', 'world');如果没有找到,通常返回 0。
它可以用来:
- 判断某个子串是否存在
- 做简单位置分析
- 配合其他函数进行字符串处理
字符串函数是实际业务中使用最频繁的一类函数之一。常见高频函数包括 CHAR_LENGTH()、LENGTH()、CONCAT()、REPLACE() 和 INSTR()。