SQL:如何检查列中是否包含字母

时间:2018-08-14 04:26:12

标签: sql ruby-on-rails ruby postgresql activerecord

所以基本上我在数据库中有一个ic列: ic仅包含数字,但该字段是字符串,因此人们也可以添加护照。 我想写一个查询,仅向我显示仅是数字的ic:

SELECT applications.ic
FROM applications
WHERE applications LIKE '%[^0-9]%'

但这确实有用!

1 个答案:

答案 0 :(得分:8)

PostgreSQL supports POSIX正则表达式:

SELECT applications.ic
FROM applications
WHERE applications.ic ~ '^\d+$'

此处的正则表达式为:

  • ^-匹配字符串的开头
  • \d-匹配一个数字
  • +-一个或多个修改器应用于前一个匹配器
  • $-匹配字符串的结尾