SUBSTR 是 MySQL 中的一个字符串函数,用于从字符串中提取子字符串。其基本语法如下:
SUBSTR(str, pos[, len])str:要从中提取子字符串的原始字符串。pos:开始提取的位置。位置从 1 开始计数。len(可选):要提取的字符数。如果省略,则提取到字符串末尾。假设我们有一个名为 employees 的表,其中有一个 department 字段,我们想要提取每个部门名称的前三个字符:
SELECT SUBSTR(department, 1, 3) AS department_prefix FROM employees;SUBSTR 函数允许你根据需要提取任意长度的子字符串。SUBSTR 在 MySQL 中经过优化,执行效率高。SUBSTR 按字节位置提取子字符串。SUBSTR 按字符位置提取子字符串,确保不会截断多字节字符。SUBSTR 函数时,提取的子字符串包含乱码?原因:这通常是因为字符集不匹配或字符编码问题。当原始字符串的字符集与 MySQL 会话的字符集不一致时,可能会导致乱码。
解决方法:
SET NAMES 'utf8mb4';SUBSTRING 或 SUBSTR 的多字节版本(如果可用)。SUBSTR 函数在某些情况下返回空字符串?原因:
pos 超出了字符串的长度。len 设置为 0。解决方法:
pos 参数的值在字符串的有效范围内。len 参数或将其设置为适当的正数值。