【问题标题】:search pattern in database table数据库表中的搜索模式
【发布时间】:2014-06-15 23:40:07
【问题描述】:

我需要搜索具有预定义模式的句子并在匹配时获得结果。假设我在表格中有一百万条预定义模式的记录,例如 a*b*、ab*cd* ...。如何做到这一点,有没有可以像下面这样搜索的数据库引擎?

我的句子是:“回家吧” 表有 2 列:ID,PATTERN

表有 2 行数据:

1, c* h

2, b* h* (你可以认为 b[a-z]* h[a-z]* 有不同的格式)

所以当我从表中查询“回家”时,它应该返回 id=1,因为这类似于 c*h* 模式。

感谢任何线索或帮助 最好的问候

【问题讨论】:

    标签: sql regex database pattern-matching


    【解决方案1】:

    我不知道有什么数据库系统可以有效地做到这一点。但是,它很容易在 SQL 中实现:

    select t.*
    from table t
    where 'come home' like t.pattern;
    

    对于like,您需要使用正确的通配符,因此在您的特定示例中:

    select t.*
    from table t
    where 'come home' like replace(t.pattern, '*', '%');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      相关资源
      最近更新 更多