Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在活动记录查询中使用正则表达式?_Ruby On Rails_Regex_Ruby_Postgresql_Activerecord - Fatal编程技术网

Ruby on rails 如何在活动记录查询中使用正则表达式?

Ruby on rails 如何在活动记录查询中使用正则表达式?,ruby-on-rails,regex,ruby,postgresql,activerecord,Ruby On Rails,Regex,Ruby,Postgresql,Activerecord,在我的数据库的特定列中,有一些值以数字结尾,而其他值则不以数字结尾。 我试图只获取不包含这些数字的数据 我尝试使用这些查询,但它们不起作用: User.where.not("spec like ?", "%\d") User.where.not("spec ~ ?", "%\d") 如何找到此数据?与%[0-9]模式一起使用: User.where.not("spec SIMILAR TO ?", "%[0-9]") 类似于运算符类似于正则表达式,但允许使用与类似的通配符和一些“轻”正则表达

在我的数据库的特定列中,有一些值以数字结尾,而其他值则不以数字结尾。 我试图只获取不包含这些数字的数据

我尝试使用这些查询,但它们不起作用:

User.where.not("spec like ?", "%\d")
User.where.not("spec ~ ?", "%\d")
如何找到此数据?

%[0-9]
模式一起使用:

User.where.not("spec SIMILAR TO ?", "%[0-9]")
类似于
运算符类似于正则表达式,但允许使用与
类似的
通配符和一些“轻”正则表达式构造,例如括号表达式,如
[0-9]
[A-Z]
。模式应与整个输入匹配,如
LIKE


因此,
%[0-9]
模式将匹配任何以任何文本开头的字符串(
%
通配符会这样做),并以ASCII数字结尾(由于末尾有
[0-9]
)。

您使用的是什么数据库引擎?@MarekLipka我使用的是postgresql关于
User.where.not(“类似于“%[0-9]”的规范”)
?@WiktorStribiżew它也不起作用:(.它返回一个错误:PG::SyntaxError:error:syntaxer错误:如果使用MySQL,在“RLIKE”或“RLIKE”附近会发生语法错误。我删除了注释。
User.where.not(“规范类似?”,“%[0-9]”将使用PostgreSQL。