php - mySQL - 多重搜索中的正则表达式或 LIKE?

标签 php mysql

此脚本搜索多个关键字。

SELECT ID,SURNAME FROM people where name='john' 
and SURNAME REGEXP 'search1|search2|search3' 
ORDER BY id DESC

但是,我听说正则表达式的性能较低并且从不使用索引。有更好/更快的方法来做同样的事情吗?

最佳答案

这在很大程度上取决于数据集的大小和姓氏列。它还取决于您最终在搜索中包含多少个姓氏。

我建议使用几个不同的搜索词进行测试,看看这是否更快:

SELECT ID,SURNAME FROM people where name='john' 
and (SURNAME LIKE '%search1%' OR SURNAME LIKE '%search2%' OR SURNAME LIKE '%search3%') 
ORDER BY id DESC

请注意,如果您的搜索仅需要在末尾使用通配符,则可以使用“search1%”而不是“%search1%”,这应该会更快

关于php - mySQL - 多重搜索中的正则表达式或 LIKE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434802/

相关文章:

mysql - 如何从两个表中获取未映射的行

javascript - JSON - 将代码从 JQuery 转换为 PHP

mysql - 将 150GB MySQL 服务器迁移到同一数据中心内的新服务器的最佳方法是什么?

php - 如果当天不存在记录则获取 0

javascript - Ajax ResponseText 对象上的 jQuery 操作

php - 一次显示两条记录的幻灯片

php - 如何在 PHP 中检查 MYSQL 后使用 JQUERY 函数

mysql - EMQTT - 仅网关客户端的 emq_plugin_template POST 到 API (SQL) 问题

javascript - 在 AngularJS 和 PHP 中向 templateUrl 添加 {fold} 值

php 与 mysql 连接,保护脚本