假设我在MySQL中有这两个变量
SET data1 = "1,2,3,apple,4,5";
SET data2 = "apple,orange,5";
如何获得这两个变量上显示的项目数?
答案 0 :(得分:0)
无法分解列表并计算项目数。用你的母语来操纵值的唯一方法是爆炸它:
php中的示例:
$values = mysql_result();
echo count(explode(",", $values));
另一种方法是将所有标签放在一个单独的表中并将它们连接到数据透视表中,然后你就可以这样做:
select
count(*)
from
items
join
pivot on pivot.item_id = items.id
join
tags on pivot.tag_id = tags.id
where
item.id = {itemid}
答案 1 :(得分:0)
如果你真的需要在MySQL端做这个,你可以创建存储过程(或存储函数),其中:
但这种解决方案远非优雅。将标签存储在单独的表中(如上所述,每行一个标签)更为可取。