我有一个包含数十万行的 mysql 数据库。我想在其中一个字段中搜索一个术语,但只在最后 10000 行中搜索。搜索整个表花费的时间太长,而且我要查找的结果不太可能早于最后 10000 行。有没有办法制作如下查询:
SELECT body from <last 10000 rows of table> where body like '%searchTerm%'
最佳答案
是的,你可以在 mysql 中使用 LIMIT 子句,但为了告诉最后一列是什么,你还必须有一个 ORDER 子句。
喜欢下面的
SELECT `body` FROM (SELECT * FROM `table` ORDER BY `dateOfRelevance` DESC LIMIT 10000) a WHERE `body` LIKE '%searchTerm%'
虽然我不确定 mysql 是否能够在 body
上正确使用 INDEX
关于MYSQL - 从部分表中选择以减少搜索时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42557894/