sql - SQL:如何检查列中是否包含字母
问题描述
所以基本上我的数据库中有一个 ic 列: ic 只包含数字,但该字段是一个字符串,因此人们也可以添加护照。我想写一个查询,它只向我显示只有数字的 ic:
SELECT applications.ic
FROM applications
WHERE applications LIKE '%[^0-9]%'
但它不起作用!
解决方案
PostgreSQL支持POSIX 正则表达式:
SELECT applications.ic
FROM applications
WHERE applications.ic ~ '^\d+$'
这里的正则表达式是:
^
— 匹配字符串的开头\d
— 匹配一个数字+
— 一个或多个修饰符应用于前一个匹配器$
— 匹配字符串的结尾
推荐阅读
- c# - 单击事件未在 ListBoxItem ContextMenu 上触发
- scala - ActiveMQ RedeliveryPolicy 未按预期工作
- python - 从 .pt 模型转换为 .h5 模型
- python - statsmodels ols from formula with groupby pandas
- docker - Docker 只监听 80 端口
- c++ - Qt6 中的端口 QRegExp::exactMatch()
- xslt - XSLT - 使用 key() 查找翻译字符串
- python - CUDA:128 个图像数据集内存不足错误
- sql - SQL我如何检查行是否在具有特定等级的表中具有该数据,以及它是否确实将Y放入具有该字段名称的另一个表中
- mysql - TypeORM 在 cron 作业中打开太多连接