sql >> Database teknologi >  >> RDS >> Mysql

Hvordan specificeres Ruby regex, når du bruger Active Record i Rails?

En måde er

Job.all.select{|j| j =~ /^\d+$/}
 

men det vil ikke være så effektivt som MySQL-versionen.

En anden mulighed er at bruge et navngivet omfang til at skjule den grimme SQL:

named_scope :all_digits, lambda { |regex_str| { :condition => [" invoice_number REGEXP '?' " , regex_str] } }

Så har du Job.all_digits .

Bemærk, at i det andet eksempel samler du en forespørgsel til databasen, så regex_str skal være en MySQL regex-streng i stedet for et Ruby Regex-objekt, som har en lidt anderledes syntaks.



  1. Hvordan virker noget OR DIE() i PHP?

  2. MySQL GRUPPE VED...AT HAVE forskellige værdier samme felt

  3. At gemme billedfiler i Mongo-databasen, er det en god idé?

  4. Rails 3 Mysql-problemer