【发布时间】:2016-08-12 10:02:55
【问题描述】:
我试图弄清楚是否有人有一种优雅的方式来查找存储在 varchar 字段中的数据模式,其中值未知 - 这意味着我不能使用 LIKE。例如,假设一个名为 test 的表如下所示:
id, str
数据看起来像这样:
1, YUUUY
2, DDDMM
3, MMMMT
4, XMXMX
并且我想做一个选择,它将返回 str 的值具有与模式 ABABA 匹配的模式的任何内容。 ABABA 这里显示的是一种模式,而不是文字字母。因此,唯一匹配此模式的将是 id = 4。是否有一个正则表达式可以用来进行这样的模式匹配?为了确保我清楚这些模式:
The pattern for id=1 is ABBBA.
The pattern for id=2 is AAABB.
The pattern for id=3 is AAAAB.
运行查询时,我只知道要搜索的模式。
或者,如果它更容易,我可以将表格设置为:
id,c1,c2,c3,c4,c5
数据看起来像这样:
1,Y,U,U,U,Y
2,D,D,D,M,M
3,M,M,M,M,T
4,X,M,X,M,X
不确定这是否会变得更容易,但我认为如果数据是这样设置的,那么正则表达式就不合适了。
【问题讨论】:
-
有些事情不应该在 SQL 中完成。