如何编写一个SQL where语句,以检查一个字符串是否包含某个子字符串和一个数字。例如:
字符串:macsea01
其中字符串类似于'macsea'加上一个数字
正则表达式是这个问题最显而易见的解决方案。如果没有关于字符串特定格式的更多细节,我建议使用以下内容,它将匹配字母表中的一个字母后紧跟着一个数字的序列:
where column_name like '%[a-zA-Z][0-9]%'
macsea
,后面跟着一个数字,那么它应该是:where column_name like 'macsea[0-9]%'
XXXXX####
格式,所以也许可以使用 ^[a-zA-Z]+[0-9]+$
。 - Alexey Larionov正则表达式在这里似乎有点棘手,根据您的需求,您可以将字符串分成几个部分,首先是文本部分,然后取余下的字符串并尝试将其转换为数字。
像这样的东西(但我认为这个特定的代码是错误的)
where substring(column_name, 1, 6) = 'macsea' and cast(substring(column_name, 7, 1000) as int) > 0