此脚本搜索多个关键字。
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/