Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql分割字符串

作者:平凡中的不凡   发布日期:2025-12-10   浏览:60

-- 示例代码:使用 MySQL 的字符串函数来分割字符串

-- 假设我们有一个包含逗号分隔的字符串 'apple,banana,orange',我们想要将其分割成多个部分。

-- 1. 使用 SUBSTRING_INDEX 函数可以提取出指定分隔符之前的子串
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', 1) AS first_part;
-- 结果:first_part = 'apple'

-- 2. 提取第二个部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('apple,banana,orange', ',', 2), ',', -1) AS second_part;
-- 结果:second_part = 'banana'

-- 3. 提取第三个部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('apple,banana,orange', ',', 3), ',', -1) AS third_part;
-- 结果:third_part = 'orange'

-- 如果你想将一个字符串按分隔符分割成多行记录,可以结合递归查询或存储过程来实现。
-- 以下是使用递归查询的一个例子(适用于 MySQL 8.0 及以上版本):

WITH RECURSIVE split_strings AS (
    SELECT 
        SUBSTRING_INDEX(SUBSTRING_INDEX('apple,banana,orange', ',', 1), ',', -1) AS value,
        1 AS position,
        LENGTH('apple,banana,orange') - LENGTH(REPLACE('apple,banana,orange', ',', '')) + 1 AS total
    UNION ALL
    SELECT 
        SUBSTRING_INDEX(SUBSTRING_INDEX('apple,banana,orange', ',', position + 1), ',', -1),
        position + 1,
        total
    FROM split_strings
    WHERE position < total
)
SELECT value FROM split_strings;

-- 这段代码会返回:
-- value
-- ------
-- apple
-- banana
-- orange

解释说明:

  • SUBSTRING_INDEX 函数用于从字符串中提取指定分隔符之前的部分。第一个参数是要处理的字符串,第二个参数是分隔符,第三个参数是指定要提取的分隔符出现次数。如果为正数,则从左开始提取;如果为负数,则从右开始提取。
  • 在递归查询中,我们通过不断更新位置来逐个提取分隔后的子串,并将其作为新行返回。

上一篇:mysql转义字符

下一篇:mysql 删除分区

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站