ホームページ >データベース >mysql チュートリアル >MySQL の GROUP_CONCAT() 関数から重複を削除するにはどうすればよいですか?
DISTINCT を使用して GROUP_CONCAT() から重複を削除する
MySQL では、GROUP_CONCAT() は複数の行の値を 1 つの行に集約する便利な関数です。単一のカンマ区切り文字列。ただし、一意でない値を操作する場合、結果の文字列に重複が現れる可能性があります。これに対処するには、GROUP_CONCAT() 関数内で DISTINCT 属性を使用できます。
問題:
「カテゴリ」列を含む次のサンプル データ テーブルを考えてみましょう。
categories |
---|
test1 test2 test3 |
test4 |
test1 test3 |
test1 test3 |
以下の GROUP_CONCAT() を実行する場合クエリ:
SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table
結果は次のとおりです:
test1 test2 test3 test4 test1 test3
ただし、望ましい結果は次のとおりです:
test1 test2 test3 test4
解決策:
GROUP_CONCAT() の結果から重複する値を削除するには、DISTINCT 属性を次のように使用します。
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table
DISTINCT 属性は、連結された文字列に一意の値のみが含まれるようにします。 ORDER BY 句は、値を昇順に並べ替えるために使用されます。結果は、個別のカテゴリのみを含むカンマ区切りの文字列です:
test1 test2 test3 test4
以上がMySQL の GROUP_CONCAT() 関数から重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。