ホームページ >データベース >mysql チュートリアル >MySQL の GROUP_CONCAT() 関数から重複を削除するにはどうすればよいですか?

MySQL の GROUP_CONCAT() 関数から重複を削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-26 13:29:09767ブラウズ

How Can I Remove Duplicates from MySQL's GROUP_CONCAT() Function?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。