MYSQL:从字符串中获取唯一的子串

时间:2013-09-11 07:21:10

标签: mysql

mysql表中只有一行的示例字段:

詹姆斯是一个好男孩詹姆斯,他很好并且很活跃

  SELECT FUNCTION(field) 
  FROM table 

应仅返回字段中的唯一字词:

詹姆斯是一个好孩子,他活跃

我知道如何使用PHP。

我希望使用MYSQL

请帮忙。

谢谢。

1 个答案:

答案 0 :(得分:0)

MySQL几乎不支持正则表达式,因此您得到的解决方案可能有点复杂:

SELECT
  GROUP_CONCAT(word ORDER BY min_n SEPARATOR ' ')
FROM (
  SELECT
    id,
    MIN(numbers.n) min_n,
    SUBSTRING_INDEX(SUBSTRING_INDEX(tableName.st, ' ', numbers.n), ' ', -1) word
  FROM
    numbers INNER JOIN tableName
    ON LENGTH(st)>=LENGTH(REPLACE(st, ' ', ''))+numbers.n-1
  GROUP BY
    id, word
  ) s
GROUP BY
  id

(你需要一个数字表)。请参阅小提琴here