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

Fab*_* B. 5 mysql sql split

不幸的是,我有一个包含值的字段列

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

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

  • 4
  • 12
  • 8

我怎么能在实践中做到这一点,因为MySQL不提供"拆分"功能?

egg*_*yal 21

使用MySQL的SUBSTRING_INDEX功能:

SELECT SUBSTRING_INDEX(field, ',', 1)
Run Code Online (Sandbox Code Playgroud)

然而,保持列出分隔符分隔字符串通常是一个低效使用关系数据库管理系统,如MySQL的:它往往是更好地规范通过在一个单独的表保持这样的列表数据结构(id, value)对.


Liu*_*tas 5

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

SELECT SUBSTRING_INDEX(value,',',1) As value FROM ...
Run Code Online (Sandbox Code Playgroud)