2012-04-09 136 views
1

我有一个搜索工具,但希望能够允许搜索任何东西,而不是简单地列出项目的类别。相当标准的东西。mysql匹配通配符

所以,当用户没有输入搜索词并简单地选择一个类别时,我希望我的搜索结果可以找到所有的东西,例如, “cat_id = 1”。

我正在尝试以下方法,并尝试了一些不同的方法,但没有喜悦,并且不是真的想诉诸不同的siutuations,如果我可以帮助它写不同的查询。

我寻找的表格已经在列一个全文索引名为“标题”和我想:

select col_name from tablename where (MATCH(title) AGAINST ('*' IN BOOLEAN MODE)) 

但没有结果可言,允许该通配符?

回答

1

使用*无法帮助。请参阅MySQL网站的用法:

MATCH()采用逗号分隔的列表来命名要搜索的列。 AGAINST接受一个字符串进行搜索,还有一个可选的修饰符指示要执行的搜索类型。搜索字符串必须是文字字符串,而不是变量或列名称。

如果用户没有输入搜索条件,是不是应该忽略那个特定的WHERE条件?

+0

是的我知道我可以这样做,我只是不特别喜欢在任何地方加载“if”语句,只要我能帮到它。谢谢回复。 – 2012-04-09 16:29:12