跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何从 MySQL 字段中包含逗号分隔的值中提取单个值?

如何从包含逗号分隔值的mysql字段中提取单个值 您要从一个值中提取多个以逗号分隔的值,例如“1,2,3,4,5,6”。以下是如何使用 mysql 函数 substring_index() 来实现此目标: 具体步骤: 使用 substring_index() 函数按逗号分隔值,将字符串转换为多行。 重复使用 substring_index() 来进一步分隔后的行,直到提取到所需的值。 sql 语句示例: MySQL(Linux) MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。 下载
select substring_index('1,2,3,4,5,6', ',', 1) as val union all select substring_index(substring_index('1,2,3,4,5,6', ',', 2), ',', -1) union all select substring_index(substring_index('1,2,3,4,5,6', ',', 3), ',', -1) -- 增加更多 union all select 语句以提取其他值
结果: 此查询将返回一个表,其中包含单独提取的值: val123 示例测试:
mysql> SELECT SUBSTRING_INDEX('1,2,3,4,5,6', ',', 1) AS val -> UNION ALL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('1,2,3,4,5,6', ',', 2), ',', -1) -> UNION ALL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('1,2,3,4,5,6', ',', 3), ',', -1) -> ; +------+ | val | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec) mysql>

相关文章