从逗号分隔列中获取名称,并从另一个逗号分隔列中查找其值

时间:2014-02-12 19:51:36

标签: mysql

问候女士们和不安分的男士们, 我有一个巨大的山区问题。

我有一个表,在几列中有逗号分隔值,我只需要理解这些。 如何从列名为“

”的列中获得 James
1. Ron,David,James,Jermy

然后获得他得分的目标数量,这些目标存储在 8

的其他列目标中
2. 3,5,8,2
然而,我可以找到Jermy使用FIND_IN_SET,但我无法得到他得分的目标。 非常感谢您的简短回复。

1 个答案:

答案 0 :(得分:2)

这样的解决方案可能有效:

SELECT
  SUBSTRING_INDEX(
    SUBSTRING_INDEX(
      '3,5,8,2',
      ',',
      FIND_IN_SET('James', 'Ron,David,James,Jermy')),
    ',',
    -1)
  • FIND_IN_SET将返回3,因为詹姆斯位于第3位
  • 第一个SUBSTRING_INDEX将返回3,5,8(它将在第三个逗号之前返回子字符串)
  • 并且第二个SUBSTRING_INDEX将返回8(它将返回最后一个逗号之后的子字符串,因为-1)

但在列中存储逗号分隔值通常不是一个好主意。