【发布时间】:2011-08-23 09:22:07
【问题描述】:
我想知道如何在标签中搜索 p.s. 我有一张桌子,其中有一列标签“酒吧,酒吧,饮料”。
在搜索例如人们搜索 barmen Drink 时,我该如何匹配这个,我试过了 LIKE, INSTR() 但没有运气,关键是标签列内容之间没有空格。 就像“bar,barmen,drink”而不是“bar,barmen,drink”
任何帮助..?
【问题讨论】:
我想知道如何在标签中搜索 p.s. 我有一张桌子,其中有一列标签“酒吧,酒吧,饮料”。
在搜索例如人们搜索 barmen Drink 时,我该如何匹配这个,我试过了 LIKE, INSTR() 但没有运气,关键是标签列内容之间没有空格。 就像“bar,barmen,drink”而不是“bar,barmen,drink”
任何帮助..?
【问题讨论】:
为什么不用单独的tags 表,与
id int(11) auto_increment
post_id int(11)
tag text
然后,每个标签都有一个tags 行。
【讨论】:
这是此类设计固有的问题。如果不改变存储数据的方式,您必须进行如下搜索:
SELECT * FROM my_table WHERE CONCAT(',', tags, ',') LIKE '%,bar,%';
编辑:实际上,我只是仔细检查过,您可以像这样使用正则表达式:
SELECT * FROM my_table WHERE tags REGEXP '[[:<:]]bar[[:>:]]';
应该会快一些。
【讨论】: