MySQL:选择以逗号分隔的列表的第一个元素

时间:2012-06-28 09:16:21

标签: mysql sql split

不幸的是,我有一个包含

等值的字段列
  • 4
  • 12,3
  • 8,5,6,7

我要写一个SELECT语句,结果如下:

  • 4
  • 12
  • 8

我怎么能在实践中这样做,因为MySQL不提供“拆分”功能?

2 个答案:

答案 0 :(得分:21)

使用MySQL的SUBSTRING_INDEX功能:

SELECT SUBSTRING_INDEX(field, ',', 1)

但是,将列表保留在以分隔符分隔的字符串中通常是对MySQL等关系数据库管理系统的低效使用:通过将这些列表保存在{{{}的单独表中,normalise数据结构通常会更好。{{3}} 1}}对。

答案 1 :(得分:5)

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

SELECT SUBSTRING_INDEX(value,',',1) As value FROM ...