Допустим, у меня есть эти две переменные в MySQL
SET data1 = "1,2,3,apple,4,5"; SET data2 = "apple,orange,5";
Как получить количество элементов, отображаемых в этих двух переменных?
Если вам действительно нужно сделать это на стороне MySQL, вы можете создать хранимую процедуру (или хранимую функцию), в которой:
Но это решение действительно далеко не элегантно. Хранение тегов в отдельной таблице (как упоминалось выше, по одному тегу на строку) гораздо предпочтительнее.
Невозможно взорвать список и сосчитать предметы. Единственный способ взорвать его на вашем родном языке, манипулируя значением:
Пример в 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}