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

mysql 逗号分隔转多行

作者:续写丶未来式   发布日期:2025-07-19   浏览:101

-- 示例代码:将逗号分隔的字符串转换为多行

-- 假设有一个包含逗号分隔值的表和列
CREATE TABLE comma_separated_values (
    id INT PRIMARY KEY,
    values_list VARCHAR(255)
);

-- 插入示例数据
INSERT INTO comma_separated_values (id, values_list) VALUES
(1, 'apple,banana,cherry'),
(2, 'dog,cat,bird');

-- 使用递归CTE将逗号分隔的字符串拆分为多行
WITH RECURSIVE split_values AS (
    SELECT 
        id,
        SUBSTRING_INDEX(SUBSTRING_INDEX(values_list, ',', 1), ',', -1) AS value,
        SUBSTRING_INDEX(values_list, ',', LENGTH(values_list) - LENGTH(REPLACE(values_list, ',', ''))) AS remaining
    FROM comma_separated_values
    UNION ALL
    SELECT 
        id,
        SUBSTRING_INDEX(SUBSTRING_INDEX(remaining, ',', 1), ',', -1),
        SUBSTRING_INDEX(remaining, ',', LENGTH(remaining) - LENGTH(REPLACE(remaining, ',', '')))
    FROM split_values
    WHERE remaining != ''
)
SELECT id, value
FROM split_values
WHERE value != '';

-- 解释说明:
-- 1. 创建一个包含逗号分隔值的表 `comma_separated_values`。
-- 2. 插入一些示例数据。
-- 3. 使用递归CTE(Common Table Expression)来逐个提取逗号分隔的值,并将其转换为多行。
-- 4. 最终查询结果将显示每个ID对应的多个值,每行一个值。

上一篇:mysql 删除所有表

下一篇:mysql 新建数据库

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql代码

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

Laravel 中文站