私は次のようにMySQL DBにアイテムタグを保存するクライアントのために働いています(私は知っています-理想的ではありません):
coats_and_jackets-Woven_Jacket-brand:Hobbs;
coats_and_jackets-Woven_Jacket-color:Black;
coats_and_jackets-Woven_Jacket-style:Boucle;
coats_and_jackets-Woven_Jacket-pattern:Plain;
dresses-Pinafore-brand:COS;
dresses-Pinafore-color:Blue _ Navy;
dresses-Pinafore-style:Wool;
dresses-Pinafore-pattern:Plain;
shoes-Ankle_Boot-brand:Topshop;
shoes-Ankle_Boot-color:Black;
shoes-Ankle_Boot-style:Leather;
shoes-Ankle_Boot-pattern:Plain;
bags-Tote-brand:Mulberry;
bags-Tote-color:Brown _ Tan;
bags-Tote-style:Leather;
bags-Tote-pattern:Plain;
shoes-Ballet_shoes-brand:Chanel;
shoes-Ballet_shoes-color:Black;
shoes-Ballet_shoes-style:Leather;
shoes-Ballet_shoes-pattern:Plain;
accessories-Scarf-brand:Zara;
accessories-Scarf-color:Brown _ Tan;
accessories-Scarf-style:Wool;
accessories-Scarf-pattern:Checked;
各タグは、次のように 4 つの部分に分割されます: カテゴリ タイプ ブランド、カテゴリ タイプ カラー、カテゴリ タイプ スタイル、カテゴリ タイプ パターン
タグの 4 つの部分すべてが必要なわけではなく、DB から省略できます。
私はアイテムにいくつのタグがあるかを調べる任務を負っているので、この例では 6 つのタグが使用され、それぞれに 4 つのパーツがすべて含まれています。
これまでのクエリでは、すべてのタグ パーツ (この例では 24) をカウントしていますが、各タグに 4 つのパーツすべてが格納されているとは想定できません。そのため、パーツの量を 4 で割ってタグの量を取得することはできません。
この例では、次の 6 つのタグが使用されています。
コート&ジャケット(ウーブンジャケット) ワンピース(ピナフォア) シューズ(アンクルブーツ) バッグ(トートバッグ) シューズ(バレエシューズ) アクセサリー(スカーフ)
カテゴリ、タイプ、パーツ (ブランド、色、スタイル、パターン) については気にしません。このアイテムのタグの総数を取得することだけに関心があります。
また、上記のデータ例は、次のような db 行に格納されます。
+----------+-------------+----------------------------+
| ID | meta_key | meta_value |
+----------+-------------+----------------------------+
| 1 | tags | coats_and_jackets-wove... |
+----------+-------------+----------------------------+
| 2 | item_desc | Fashion editor |
+----------+-------------+----------------------------+
このクエリの構造化を支援していただければ幸いです。