ホームページ  >  記事  >  データベース  >  MySQL で複数のカテゴリに属する​​項目を選択するには?

MySQL で複数のカテゴリに属する​​項目を選択するには?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-31 22:02:02323ブラウズ

How to Select Items Belonging to Multiple Categories in MySQL?

MySQL を使用してデータベース列内の複数の一致する値を選択する

問題:

項目を指定できる連想テーブルがあります。複数のカテゴリに属します。指定したカテゴリのセットに属する項目のみを選択するにはどうすればよいですか?

解決策:

列の複数の特定の値を満たす項目を選択するには、次の方法があります。 MySQL の 2 つの主要なアプローチ:

自己結合メソッド:

このメソッドは、1 回の結合操作で同じテーブルの複数の行を比較します。たとえば、カテゴリ 201 と 202 のアイテムを選択するには:

SELECT c1.item_id
FROM item_category AS c1
INNER JOIN item_category AS c2 ON c1.item_id = c2.item_id
WHERE c1.category_id = 201 AND c2.category_id = 202

GROUP BY メソッド:

このメソッドは列ごとに行をグループ化し、COUNT() を使用します。アイテムが指定されたすべてのカテゴリに属しているかどうかを確認するために集計します。たとえば、カテゴリ 201 と 202 の項目を選択するには:

SELECT c.item_id, COUNT(*) AS cat_count
FROM item_category AS c
WHERE c.category_id IN (201,202)
GROUP BY c.item_id
HAVING cat_count = 2

これら 2 つの方法のどちらを選択するかは、検索するカテゴリの数とパフォーマンスの考慮事項によって異なります。

以上がMySQL で複数のカテゴリに属する​​項目を選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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