首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql反向模式匹配-替代?

问Mysql反向模式匹配-替代?
EN

Stack Overflow用户
提问于 2017-04-07 22:46:12
回答 1查看 104关注 0票数 0

假设我在MySQL数据库表中有以下值:

代码语言:javascript
复制
a
ab
abc
abcd

我正在寻找一种快速的方法来检索作为我输入的前缀的所有值。显然,这是可行的:

代码语言:javascript
复制
SELECT * FROM table WHERE 'abcde12345' LIKE CONCAT(col, '%');

在大型数据集上,...but的速度非常慢。有没有更智能的存储数据的方法来实现快速查找?

EN

回答 1

Stack Overflow用户

发布于 2017-04-08 13:10:55

这可能会有所帮助,INDEX(col)也是如此

代码语言:javascript
复制
SELECT  *
    FROM  table
    WHERE  col BETWEEN 'a' AND 'abcde12345'
      AND  'abcde12345' LIKE CONCAT(col, '%');

这更有可能是:

代码语言:javascript
复制
SELECT *
    FROM  table
    WHERE col IN ('a', 'ab', 'abc', ..., 'abcde12345');

后一个版本可以用'abcde12345'中的代码构造,或者(更痛苦的是)在存储过程中构造。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43281040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档