-- 使用 MySQL 的字符串函数进行拆分
-- 假设我们有一个包含逗号分隔的字符串 'apple,banana,orange',我们希望将其拆分为多个行
-- 创建一个辅助表来生成行数
WITH RECURSIVE numbers AS (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM numbers WHERE n < (SELECT LENGTH('apple,banana,orange') - LENGTH(REPLACE('apple,banana,orange', ',', '')) + 1)
)
-- 拆分字符串并显示结果
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX('apple,banana,orange', ',', n), ',', -1) AS fruit
FROM
numbers;
-- 解释:
-- 1. WITH RECURSIVE numbers 生成一个递归的数字序列,用于表示每个子字符串的位置。
-- 2. LENGTH('apple,banana,orange') - LENGTH(REPLACE('apple,banana,orange', ',', '')) 计算字符串中的逗号数量,从而确定需要拆分的次数。
-- 3. SUBSTRING_INDEX 用于从左到右提取指定数量的子字符串。通过嵌套使用 SUBSTRING_INDEX 和 n,我们可以逐个提取每个子字符串。
上一篇:mysql基本操作
下一篇:mysql去除指定字符
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站