【问题标题】:MySQL regexp listMySQL 正则表达式列表
【发布时间】:2011-10-05 10:34:01
【问题描述】:

我有一个 MySQL 表,其中包含 regexp 列和 value 列,例如:

regexp    value
 ab+c      abc
 bc+d      bcd

我还有一个值列表,例如:(不在数据库中,在查询中)

abc
abbc
bcccccd

我需要将列表中的值与正则表达式匹配并获取每个项目的值 - 预期输出:

match    value
 abc      abc
 abbc     abc
bcccccd   bcd

如果这不是我可以使用的正则表达式

select `regexp`, `value`
from `mytable`
where `regexp` in ('abc', 'abbc', 'bcccccd')

但我不能用它来匹配正则表达式。即使有某种regexp in 这仍然会有问题,因为它会返回正则表达式而不是匹配的值 - 不需要的输出:

regexp    value
 ab+c      abc
 ab+c      abc
 bc+d      bcd

【问题讨论】:

    标签: mysql regex


    【解决方案1】:

    也许你可以这样做:

    select rt.value from regextable as rt where 'bcccccd' rlike rt.regexp
    

    每个输入值使用一个查询。

    【讨论】:

    • 但这会很慢,我需要大约 10 万次这样的查询。
    猜你喜欢
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2020-08-05
    • 2012-09-02
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2011-01-31
    相关资源
    最近更新 更多