我有一个搜索工具但希望能够允许搜索任何内容,而只是简单地列出项目类别。非常标准的东西。
因此,当用户不输入任何搜索字词并只选择一个类别时,我希望我的搜索能够找到所有内容,例如: “cat_id = 1”。
我正在尝试以下方法,我尝试了一些不同的方法,但没有快乐,如果我可以帮助它,我真的不想为不同的语言编写不同的查询。
我正在搜索的表在名为“title”的列上有一个全文索引,我正在尝试:
select col_name from tablename where (MATCH(title) AGAINST ('*' IN BOOLEAN MODE))
但是根本没有结果,这个通配符是否允许?
答案 0 :(得分:1)
使用*不会有帮助。请参阅MySQLs站点的用法:
MATCH()采用逗号分隔的列表来命名要搜索的列。 AGAINST需要一个字符串来搜索,一个可选的修饰符指示要执行的搜索类型。搜索字符串必须是文字字符串,而不是变量或列名。
如果用户没有输入任何搜索字词,您是否应该省略该特定的WHERE条件?