我数据库的特定列中有以数字结尾的值,而其他则没有。 我正在尝试仅获取不包含这些数字的数据。
我尝试使用这些查询,但是它们不起作用:
User.where.not("spec like ?", "%\d")
User.where.not("spec ~ ?", "%\d")
如何找到这些数据?
答案 0 :(得分:4)
将SIMILAR TO
与%[0-9]
模式一起使用:
User.where.not("spec SIMILAR TO ?", "%[0-9]")
SIMILAR TO
运算符与regex类似,但允许与LIKE
和某些“轻型” regex构造(例如)一起使用通配符。方括号表达式,例如[0-9]
或[A-Z]
。该模式应与LIKE
一样匹配整个输入。
因此,%[0-9]
模式将匹配任何以任何文本开头的字符串(%
通配符完成)并以ASCII数字结尾(由于末尾的[0-9]
)