Hello! 欢迎来到小浪云!


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


avatar
小浪云 2024-11-08 120

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

从逗号分隔字段提取多个值

如何在 mysql 中从存储为逗号分隔值(例如“1,2,3,4,5,6”)的字段中分别提取这些值?

解决方案

可以使用 mysql 内置函数 substring_index() 将逗号分隔的值转换为多行,具体步骤如下:

  1. 将逗号分隔的值作为第一个参数传递给 substring_index() 函数。
  2. 将逗号作为第二个参数传递,表示分隔符。
  3. 将 1 作为第三个参数,指示要提取第一个值。

例如,以下查询将从逗号分隔的字段中提取前三个值:

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    | +------+
登录后复制

相关阅读