【发布时间】:2020-08-11 14:21:14
【问题描述】:
我如何编写一个 SQL where 语句来检查一个字符串是否包含一些子字符串和一个数字。例如:
字符串:macsea01
像'macsea'这样的字符串加上一个数字
【问题讨论】:
-
字符串函数是非常供应商特定的。请使用您正在使用的特定数据库标记您的问题。 Why should I “tag my RDBMS”?
我如何编写一个 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]+$
这里的正则表达式似乎有点滑,根据您的需要,您可以例如将字符串分成几个部分,首先是文本部分,然后取出字符串的其余部分,尝试将其转换为数字。
类似这样的东西(但我认为这个特定的代码被破坏了
where substring(column_name, 1, 6) = 'macsea' and cast(substring(column_name, 7, 1000) as int) > 0
【讨论】: