如何在PrestoSQL中筛选仅含英文字母和数字的记录
PrestoSQL 过滤仅含英文字母、数字字段值的实现方案
直接使用Presto内置的regexp_like正则匹配函数即可实现需求,匹配规则为仅保留从头到尾全部由大小写英文字母、数字组成的字段值:
SELECT * FROM 你的表名 -- 替换为实际表名、字段名 WHERE regexp_like(A, '^[a-zA-Z0-9]+$');
规则说明
- 正则
^[a-zA-Z0-9]+$各部分含义:^标记字符串的起始位置[a-zA-Z0-9]匹配任意大小写英文字母、0-9数字+要求前面的匹配规则至少出现1次,如果你需要允许空字符串,可以将+替换为*$标记字符串的结束位置,避免出现开头结尾符合要求、中间有特殊字符的记录被误匹配
可选调整项
- 如果仅需要保留小写英文字母+数字,将正则改为
^[a-z0-9]+$即可 - 如果需要额外允许下划线、短横线等合法字符,直接将对应字符加到
[]内即可,例如下划线的正则为^[a-zA-Z0-9_]+$ - 如果需要保留NULL值的记录,修改过滤条件为
WHERE regexp_like(A, '^[a-zA-Z0-9]+$') OR A IS NULL
内容的提问来源于stack exchange,提问作者AA BB
相关产品推荐
相关产品推荐

