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

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

Susan Sarandon
リリース: 2024-12-26 13:29:09
オリジナル
870 人が閲覧しました

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート