匹配MYSQL中的标签

时间:2011-08-23 09:22:07

标签: php mysql search tags

我想知道如何在标签中搜索ps。 我有一张桌子,里面有一栏标有“酒吧,酒吧,饮料”的标签。

在搜索例如人们搜索男服饮料时,我怎么配这个,我试过了 LIKE,INSTR()但没有运气,重点是标签列内容之间没有空格。 这就像“酒吧,男服务员,饮料”,不像“酒吧,男服务员,饮料”

任何帮助..?

2 个答案:

答案 0 :(得分:4)

为什么没有单独的tags表,

id int(11) auto_increment
post_id int(11)
tag text

然后,为每个标记添加一行tags

答案 1 :(得分:2)

这是此类设计固有的问题。如果不改变存储数据的方式,就必须进行如下搜索:

SELECT * FROM my_table WHERE CONCAT(',', tags, ',') LIKE '%,bar,%';
编辑:实际上,我只是仔细检查过,你可以像这样使用正则表达式:

SELECT * FROM my_table WHERE tags REGEXP '[[:<:]]bar[[:>:]]';

哪个应该快一点。