Skip to content

Latest commit

 

History

History
94 lines (62 loc) · 2.29 KB

File metadata and controls

94 lines (62 loc) · 2.29 KB

字符串函数

字符串函数用于处理文本内容,例如计算长度、拼接字符串、替换内容、查找子串等。在用户名处理、格式化展示、模糊匹配和数据清洗场景中非常常见。

计算字符串字符数和字符串长度的函数

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()