问题描述
我该如何编写sql where语句来检查字符串是否包含某些子字符串和数字。例如:
字符串:macsea01
“ macsea”之类的字符串加上数字
解决方法
正则表达式是此问题最明显的解决方案。如果没有更多有关字符串的特定格式的详细信息,我可以建议以下内容,它们将匹配字母中字母的序列,后跟数字:
where column_name like '%[a-zA-Z][0-9]%'
如果您实际上是在字符串的开头寻找macsea
,后跟一个数字,则为:
where column_name like 'macsea[0-9]%'
,
这里的Regex似乎有点溜滑,例如,根据您的需要,您可以将字符串分成几个部分,首先是文本部分,然后取剩下的字符串,尝试将其转换为数字。
>像这样的东西(但我认为此垂直代码已损坏
where substring(column_name,1,6) = 'macsea' and cast(substring(column_name,7,1000) as int) > 0