Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak określić wyrażenie regularne Ruby podczas korzystania z Active Record w Railsach?

Jednym ze sposobów jest

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

ale nie będzie tak wydajna jak wersja MySQL.

Inną możliwością jest użycie nazwanego zakresu do ukrycia brzydkiego kodu SQL:

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

Następnie masz Job.all_digits .

Zauważ, że w drugim przykładzie tworzysz zapytanie dla bazy danych, więc regex_str musi być ciągiem znaków MySQL zamiast obiektu Ruby Regex, który ma nieco inną składnię.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać kolumny tymczasowej w klauzuli where

  2. Wysyłanie kodu HTML przez JSON

  3. MySQL dodaje 12 godzin do pola czasu

  4. Jak uciec % w Knex, gdzie jak zapytanie?

  5. Dziwne zachowanie duplikatów z GROUP_CONCAT dwóch LEFT JOIN z GROUP_BYs