mysql 匹配通配符

标签 mysql sql full-text-search

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

因此,当用户不输入任何搜索词而只是选择一个类别时,我希望我的搜索能够找到所有内容,例如“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/

相关文章:

sql全文搜索不搜索确切的短语

php - 如何使用MySQL全文搜索短语而不是使用LIKE

elasticsearch - 设计处理和搜索 MS Office 文档的 ASP.NET 应用程序

php - 在 php mysql web 应用程序中实现计数器/计时器

mysql - 如何在 MySQL 中使用带全文索引的事务?

mysql - 这个查询在查询优化器中是如何执行的?

MySQL 游标的 FETCH 不适用于时间数据类型

sql - 更改表列以添加约束并且列不为空

PHP:从数组或 SQL 表中获取数据更快吗?

sql - Postgresql 查询不识别列