MySQL 在行值中查找子字符串?

标签 mysql

我想在用户输入时更新搜索结果。

我正在使用 MATCH 将搜索词与行进行比较。 MATCH 很棒,因为它不区分大小写,并且将重音字符视为常规字符。

我对这个实现的问题是,它只能在用户键入完整单词时找到结果。

E.G: If the user types `arbol` MATCH finds all similar rows (árbol, Arbol etc)
however when he just typed `árb` MATCH doesn't find any results.

我应该如何编写 WHERE 子句,以便它显示所有出现的情况,无论是在字符串中还是在子字符串中?

最佳答案

将通配符 (*) 附加到您的匹配字符串应该可以满足您的要求。

WHERE MATCH (columnName) AGAINST ("term*");

编辑:哦,你需要:

IN BOOLEAN MODE

以及使用通配符匹配。

关于MySQL 在行值中查找子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284608/

相关文章:

java - JDBC、MySQL : getting back row data from PreparedStatement executes

Mysql Select reciprocal pairs of records,不重复

mysql - 如何在 MySQL 数据库中捕获 SQL 语句?

并发存储过程执行期间 MySQL 性能下降

python - 如何解决 Flask-SQLAlchemy 数据库 session 超时(避免 "MySQL server has gone away")

php - Phinx 迁移 sqlite 内存 phpunit

mysql - 如何将 MariaDB 中的现有列更改为 Not Null?

mysql - 获取每组分组结果的前n条记录

php - 如何在数据库中搜索字符串 X 次? (MySQL + PHP)

php - 我过度查询 MySql 数据库。另一种检索大量数据的方法?