231

やっていSELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM tableます。以下のサンプルデータ:

categories
----------
test1 test2 test3
test4
test1 test3
test1 test3

しかし、私は戻ってきtest1 test2 test3 test4 test1 test3ており、戻ってきたいと思っていtest1 test2 test3 test4ます。何か案は?

どうもありがとう!

4

6 に答える 6

423

GROUP_CONCATには DISTINCT 属性があります。

SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table
于 2010-06-21T09:41:11.713 に答える
64

DISTINCT を使用すると機能します

SELECT GROUP_CONCAT(DISTINCT(categories) SEPARATOR ' ') FROM table

参照:-これ

于 2010-06-21T09:44:10.340 に答える
16

前にDISTINCTを追加するだけです。

SELECT GROUP_CONCAT(DISTINCT categories SEPARATOR ' ')

並べたい場合は、

SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ')
于 2019-04-01T07:04:36.957 に答える
12
SELECT
  GROUP_CONCAT(DISTINCT (category))
FROM (
  SELECT
    SUBSTRING_INDEX(SUBSTRING_INDEX(tableName.categories, ' ', numbers.n), ' ', -1) category
  FROM
    numbers INNER JOIN tableName
    ON LENGTH(tableName.categories)>=LENGTH(REPLACE(tableName.categories, ' ', ''))+numbers.n-1
  ) s;   

これは、次のような個別の値を返します: test1,test2,test4,test3

于 2017-02-03T10:26:40.383 に答える