Я бы рекомендовал против этого, это идет вразрез с правилами нормализации.
См. Я продолжаю портить 1NF
Или читать сообщения под тегом нормализации .
Предложение по редизайну для таблиц
Если вы создаете тег и таблицу тегов, например, так.вот так.
table product
id autoincement integer primary index
desc varchar(255)
barcode, price, whatever ...
оператор выбора для поиска товаров по тегу
Чем можно искать статьи, соответствующие тегу, следующим образом.
select * from product
inner join taglink on (product.id = taglink.product_id)
inner join tag on (taglink.tag_id = tag.id)
where tag.tag_str in ('foo','bar','baz');
выберите оператор для отображения тегов для каждого продукта
select tag_str from tag
inner join taglink on (taglink.tag_id = tag.id)
inner join product on (taglink.product_id = product.id)
where product.barcode = '4548215' or product.desc like 'OMG Po%'
Добавление новых тегов
Чтобы добавить новый тег, просто
insert into tag (id, tag_str) values (
null /*remember autoincrement*/
,'Mytag');
привязка тега
Чтобы связать тег с продуктом
set @product_id = 10;
set @tag_id = 1;
...or...
select @product_id:= product.id from product where product.barcode = '1254851';
...
insert into taglink (id, product_id, tag_id) values (
null /*autoinc id*/
,@product_id
,@tag_id );
Вы можете связать неограниченное количество тегов с продуктом, и вы не сможетене замедляйте ваши запросы с помощью дорогих FIND_IN_SET
операторов.
и вы предотвращаете дублирование тегов.
И ваша база данных будет быстрее и меньше.