问题描述
简单问题:
我有如下字段(路径):
1/2/43
1/2/43/45
1/2/43/45/46
我希望能够获得包含43 / XX的路径
意思是唯一有效的
1/2/43/45
这似乎不起作用
... WHERE path LIKE '%43/[0-9][0-9]%'
解决方法
仅SQL Server支持将LIKE
与正则表达式一起使用。在MySQL中,您将使用RLIKE
或REGEXP
(都是同义词)。您的情况将转换为:
WHERE path RLIKE '43/[0-9][0-9]'
这可以用一个量词来缩短:
WHERE path RLIKE '43/[0-9]{2}'
您可能希望通过确保43
之前的字符是斜杠或字符串的开头来更具体一些:
WHERE path RLIKE '(^|/)43/[0-9]{2}'
相同的约束可以应用于字符串的右侧:
WHERE path RLIKE '(^|/)43/[0-9]{2}(/|$)'