Regex 仅查询整数Rails 2.3
我的环境是带有Rails 2.3.11的Ruby 1.8.7-p358。我试图查询所有Regex 仅查询整数Rails 2.3,regex,postgresql,ruby-on-rails-2,Regex,Postgresql,Ruby On Rails 2,我的环境是带有Rails 2.3.11的Ruby 1.8.7-p358。我试图查询所有账户,这些账户的名字仅包含数字(它们都是3位整数,即001、143、815等)。我一直在尝试使用此查询: Account.find(:all, :conditions => ["first_name LIKE ?", "[^0-9][^0-9][^0-9]"]) 我得到的回报是=>[] 如果我只对NOT LIKE使用相同的查询,我将获得所有帐户,包括first\u name为整数的帐户 我还尝试使用:
账户
,这些账户的名字
仅包含数字(它们都是3位整数,即001、143、815等)。我一直在尝试使用此查询:
Account.find(:all, :conditions => ["first_name LIKE ?", "[^0-9][^0-9][^0-9]"])
我得到的回报是=>[]
如果我只对NOT LIKE
使用相同的查询,我将获得所有帐户
,包括first\u name
为整数的帐户
我还尝试使用:
Account.find(:all, :conditions => ["first_name REGEXP ?", "[^0-9][^0-9][^0-9]"])
但这只会让我:
ActiveRecord::StatementInvalid: PGError: ERROR: syntax error at or near "REGEXP"
LINE 1: SELECT * FROM "accounts" WHERE (first_name REGEXP '[0-9][0-9...
^
: SELECT * FROM "accounts" WHERE (first_name REGEXP '[0-9][0-9][0-9]') ORDER BY first_name ASC
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/connection_adapters/postgresql_adapter.rb:520:in `execute'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/connection_adapters/postgresql_adapter.rb:1002:in `select_raw'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/connection_adapters/postgresql_adapter.rb:989:in `select'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/query_cache.rb:62:in `select_all'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/base.rb:665:in `find_by_sql'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/base.rb:1582:in `find_every'
from /Users/kyle/.rvm/gems/ruby-1.8.7-p358@popcorn_recruiter_portal/gems/activerecord-2.3.11/lib/active_record/base.rb:619:in `find'
from (irb):189
from :0
不允许使用正则表达式吗?我如何才能找到每个名为三位整数的
帐户,运算符不计算正则表达式。在中,您可以同时使用与
类似的:
select '980' similar to '[0-9][0-9][0-9]';
?column?
----------
t
或~
:
select '980' ~ '[0-9][0-9][0-9]';
?column?
----------
t
(1 row)
啊!还是空的>>a=Account.find(:all,:conditions=>[“first\u name~?”,“[0-9][0-9][0-9]”])=>[]>[]>[]a=Account.find(:all,:conditions=>[“first\u name类似?”,“[0-9][0-9][0-9]”)])=>[/code>@justlike在“[0-9][0-9]”中有一个前导空格,你说得对!类似于
的操作员工作得很好!谢谢