有一个文章表,文章表中有个关联标签的字段tag tag字段的内容基本是这样的:1,2,3,333,230(关联的标签ID,用逗号隔开) 现在出现问题了,我现在想找到标签ID为3的文章,用LIKE %3%好像会把333,230标签的内容都查出来 在不改变表结构的情况下,有什么查询方法吗?
tag
SELECT * FROM test WHERE find_in_set('3',tag)
tag LIKE '%,3' or tag LIKE '3,%' or tag LIKE '%,3,%'
LIKE %,3,% 加上逗号就好了
find_in_set,用这个可以满足你的要求,不要用like....
我建议使用另外一张表来维护分类关系。find_in_set可是全表扫描,没有使用索引的。到时候数据库会有问题的
SELECT * FROM test WHERE find_in_set('3',tag)
LIKE %,3,% 加上逗号就好了
find_in_set,用这个可以满足你的要求,不要用like....
我建议使用另外一张表来维护分类关系。find_in_set可是全表扫描,没有使用索引的。到时候数据库会有问题的