6

不幸的是,我有一个字段列,其中包含如下值

  • 4
  • 12,3
  • 8,5,6,7

我将编写一个 SELECT 语句,其结果将是:

  • 4
  • 12
  • 8

由于 MySQL 不提供“拆分”功能,我该如何在实践中做到这一点?

4

2 回答 2

24

使用 MySQL 的SUBSTRING_INDEX功能:

SELECT SUBSTRING_INDEX(field, ',', 1)

但是,将列表保存在分隔符分隔的字符串中通常是对 MySQL 等关系数据库管理系统的低效使用:通过将此类列表保存在单独的成对表中来规范化数据结构通常会更好。(id, value)

于 2012-06-28T09:21:11.033 回答
7

您可以使用 MySQL 函数SUBSTRING_INDEX(str,delim,count)

SELECT SUBSTRING_INDEX(value,',',1) As value FROM ...
于 2012-06-28T09:22:09.997 回答