我想执行一个 SQL 查询,该查询从列中返回所有在第二个字母后包含连字符的数据。
基本上我有一列包含“BC-123456-1”形式的字符串,但在它们之间我有其他字符串,如 NULL(作为字符串而不是类型)和其他垃圾字符串
我目前的查询是
SELECT DISTINCT column FROM Table WHERE constraint IS NULL AND column IS NOT NULL
那么有什么方法可以过滤掉那些不符合我模式的数据吗?
你可以试试这个查询
SELECT DISTINCT column FROM Table WHERE constraint IS NULL AND column IS NOT NULL AND
column LIKE '__-%'
“__”下划线将允许任何 2 个字符后跟连字符,“%”将允许其后的任意数量的字符
您可以使用以下查询。
SELECT DISTINCT column FROM Table WHERE constraint IS NULL AND IFNULL(column,'') LIKE '__-%';
解释
1)IFNULL
检查是否列,然后我已将空值替换为''
2)在like子句中,我保留了2个下划线__
,下划线表示单个字符。所以我放了2个下划线。