我有一个搜索工具,但希望能够允许搜索任何内容,而不是简单地列出项目类别。非常标准的东西。
因此,当用户不输入任何搜索词而只是选择一个类别时,我希望我的搜索能够找到所有内容,例如“cat_id = 1”。
我正在尝试以下方法,我尝试了几种不同的方法,但没有任何乐趣,如果可以的话,我真的不想为不同的情况编写不同的查询。
我正在搜索的表在名为“title”的列上有一个全文索引,我正在尝试:
select col_name from tablename where (MATCH(title) AGAINST ('*' IN BOOLEAN MODE))
但是根本得不到结果,这个通配符可以吗?
最佳答案
使用 * 无济于事。从 MySQLs 站点查看用法:
MATCH() 采用逗号分隔的列表来命名要搜索的列。 AGAINST 接受一个要搜索的字符串,以及一个可选的修饰符,指示要执行的搜索类型。搜索字符串必须是文字字符串,而不是变量或列名。
如果用户没有输入任何搜索词,您是否应该忽略特定的 WHERE 条件?
关于mysql 匹配通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10076027/