我们如何在mysql中获得“Jone Deo”或“Deo Jone”的结果?
例子。
表名学生
身份证------姓名
1-------钟德奥
2-------比尔盖茨
现在,如果有人输入 Deo Jone 或 Jone Deo 那么 Jone Deo 记录将在 mysql 中搜索出来
我的网站上有搜索框。如果有人搜索“Jone Deo”或“Deo Jone”,我将只需要上表的结果。
我不想使用 PHP 循环或爆炸功能。
最佳答案
您可能想尝试全文搜索:
SELECT * FROM People WHERE MATCH (full_name)
AGAINST ('+Doe +John' IN BOOLEAN MODE);
http://sqlfiddle.com/#!9/d21d4e/5
全文搜索解释:https://www.w3resource.com/mysql/mysql-full-text-search-functions.php
“全文搜索是使用 MATCH() ... AGAINST 语法执行的。MATCH() 采用逗号分隔的列表来命名要搜索的列。AGAINST 采用一个字符串进行搜索,以及一个指示什么类型的可选修饰符“要执行的搜索。搜索字符串必须是在查询评估期间保持不变的字符串值。例如,这排除了表列,因为每行可能不同。”
简而言之,要回答您的问题,您应该看到通过在宽 VARCHAR 列上实现全文索引来改善查询执行时间。如果您使用的是兼容的存储引擎(InnoDB 或 MyISAM)
关于php - 在mysql中获取 "Jone Deo"或 "Deo Jone"的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55394504/