在MySQL TEXT字段中搜索以逗号分隔的多个类别

时间:2011-08-06 22:16:30

标签: mysql select join

所以我正在尝试做什么,但无法弄明白。我正在做的一个网站允许一个人选择几个类别,如'拳击','减肥','耐力'等等...这些都是逗号分隔并坐在成员表的一个TEXT字段中。

现在我想要做的是找出我如何一次搜索多个类别(比如说耐力和拳击)并找到在其类别字段中具有这两者中的任何一个/两者的所有成员。

我想到了profile_specialising IN('Cat1','Cat2','Cat3')......但是当profile_specialising字段在db中有超过1个类别/字段时,这不起作用。

因此,我可以在具有多个类别的字段中搜索多个类别。

1 个答案:

答案 0 :(得分:1)

我真的建议你将类别放在一个单独的表中,并将它们与第三个表category_to_members的成员联系起来。但是如果你想保留它们,因为它们是假设的查询就像这样。

SELECT * FROM members WHERE category LIKE '%cat%' OR category LIKE '%dog%'

这有固有的问题 - LIKE '%cat%'会匹配“紧张症”以及“猫”。试图通过向LIKE添加逗号来解决这个问题比它的价值更麻烦,恕我直言。