sql >> Database teknologi >  >> RDS >> PostgreSQL

Rails (postgres)-forespørgsel med jsonb-array

Det, du vil bruge, er @> operatør , som tester om din venstrehåndsværdi indeholder højrehåndsværdien. "Indeholder" virker for både objekter og arrays, så følgende forespørgsel ville fungere:

SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';

Som jeg tror, ​​du kan transformere til ActiveRecord-kompatibel syntaks som sådan:

scope :with_spec_options, ->(spec_options) { 
  where("specs->'spec_option' @> ?", spec_options.to_json) 
}



  1. SQL Server - Transponer rækker til kolonner

  2. Hvad er nogle metoder til at forhindre dobbeltpostering i en formular? (PHP)

  3. MySQL Brug WHERE-sætningen til at målrette mod en bestemt række

  4. rails dynamisk hvor sql forespørgsel