数据库表中的搜索模式

时间:2014-04-29 20:34:50

标签: sql regex database pattern-matching

我需要搜索具有预定义模式的句子,并在匹配时获得结果。假设我在表格中有一百万个预定义模式的记录,如* b *,ab * cd * ....如何实现这一点,是否有任何数据库引擎可以搜索如下?

我的判决是:“回家” 表格有2列:ID,PATTERN

表有2行数据:

1,c * h

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

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

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

1 个答案:

答案 0 :(得分:2)

我不知道有效地执行此操作的数据库系统。但是,在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, '*', '%');