我正在为一个在 MySQL 数据库中存储项目标签的客户工作(我知道,我知道 - 不理想):
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 个部分,如下所示:category-type-brand、category-type-color、category-type-style、category-type-pattern
并非标签的所有 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 |
+----------+-------------+----------------------------+
帮助构建此查询将不胜感激。