
如何从 mysql 中逗号分隔的字段中提取单独值
您有一张包含字段值以逗号分隔的表。例如,该字段可能包含值为“1,2,3,4,5,6”这样的数据。您希望将每个值提取为一个独立的记录。
解决方案:使用 substring_index() 函数
要实现此目的,您可以使用 mysql 内置函数 substring_index()。此函数使用以下语法:
substring_index(str,delim,count)
其中:
通过将逗号作为分隔符并为计数指定适当的值,您可以逐个提取逗号分隔的值。
例如,要提取“1,2,3,4,5,6”中的前三个值,可以使用以下查询:
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 | +------+
您可以根据需要添加更多 union all 语句来提取更多值。
实际示例
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>以上就是如何从 MySQL 逗号分隔的字段中提取单独值?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号