我有一列设置为字符,但用户可以插入数字。
如何确定字段的数字长度为11而不是字母?
示例:
样本数据{col1= aaaaaaaaaaa,11111122222}
select Col1
from
table
group by 1
having SUM(CHARACTER_LENGTH(Col1))=11
错误的输出:aaaaaaaaaa
所需的输出:11111122222
简而言之,我需要在char列中检索所有可识别为数字并具有11位数字的值。
答案 0 :(得分:2)
使用similar to
和character_length()
:
select * from tablename
where (col similar to '[0-9]+') and character_length(col) = 11
或:
select * from tablename
where col similar to '[0-9]{11}'
请参见demo。