如何在mysql中获取“Jone Deo”或“Deo Jone”的结果? 示例。
表名学生
ID------姓名
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/