データベース クエリでは、GROUP_CONCAT() 関数は複数の行の値を 1 つの文字列に連結するためによく使用されます。 。ただし、場合によっては、結果の文字列に重複した値が含まれる場合があります。この問題に対処するために、MySQL は GROUP_CONCAT() 内に DISTINCT 属性を提供します。
「カテゴリ」列を含む次のテーブルを考えてみましょう。
categories |
---|
test1 test2 test3 |
test4 |
test1 test3 |
test1 test3 |
以下を実行するとクエリ:
SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table;
次の結果が得られます:
test1 test2 test3 test4 test1 test3
ただし、重複する値を除外することもでき、結果は次のようになります:
test1 test2 test3 test4
これを実現するには、単に DISTINCT 属性をGROUP_CONCAT() 関数:
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table;
DISTINCT を指定すると、MySQL は連結された文字列から重複する値を削除し、目的の出力が得られます。 ORDER BY 句により、連結された値が確実に昇順に並べ替えられることに注意してください。
以上がMySQL の GROUP_CONCAT() 結果から重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。