1

我有一个搜索工具,但希望能够允许搜索任何内容,而不是简单地列出项目类别。很标准的东西。

因此,当用户不输入任何搜索词并简单地选择一个类别时,我希望我的搜索能够找到例如“cat_id = 1”的所有内容。

我正在尝试以下方法,并且尝试了几种不同的方法,但没有任何乐趣,并且如果我能提供帮助,我真的不想诉诸为不同的情况编写不同的查询。

我正在搜索的表在名为“title”的列上有一个全文索引,我正在尝试:

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

但是根本没有结果,这个通配符是否允许?

4

1 回答 1

1

使用 * 不会有帮助。查看 MySQLs 站点的用法:

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

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

于 2012-04-09T16:19:10.737 回答