sql >> Database >  >> RDS >> Mysql

Hoe Ruby regex specificeren bij gebruik van Active Record in Rails?

Een manier is

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

maar het zal niet zo efficiënt zijn als de MySQL-versie.

Een andere mogelijkheid is om een ​​benoemd bereik te gebruiken om de lelijke SQL te verbergen:

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

Dan heb je Job.all_digits .

Merk op dat u in het tweede voorbeeld een query voor de database aan het samenstellen bent, dus regex_str moet een MySQL regex-tekenreeks zijn in plaats van een Ruby Regex-object, dat een iets andere syntaxis heeft.



  1. mysql_fetch_array haalt niet alle rijen op

  2. MySQL LOG() Functie – Retourneer de natuurlijke logaritme van een waarde

  3. Limieten voor Salesforce API Query-cursor

  4. Enige reden voor een GROUP BY-clausule zonder aggregatiefunctie?