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

Come si citano le stringhe in Postgres

Come menzionato nei commenti, la maggior parte dei database utilizza virgolette singole per letterali stringa e virgolette doppie per identificatori. MySQL è piuttosto rilassato e accetterà anche virgolette doppie per stringhe letterali, ma PostgreSQL è (per fortuna) piuttosto severo. Quindi vuoi usare virgolette singole:

SnCl.all(:conditions => "col3 = 'xx'")

o usando where :

SnCl.where("col3 = 'xx'")

o con un uso ragionevole delle funzionalità di quotazione del driver del database:

SnCl.where("col3 = #{SnCol.connection.quote('xx')}")

E salvando il meglio per ultimo, nel modo in cui lo fanno le persone ragionevoli usando un segnaposto o argomenti hash per where :

SnCl.where('col3 = ?', 'xx')
SnCl.where('col3 = :col3', :col3 => 'xx')
SnCl.where(:col3 => 'xx')

L'ultimo sarebbe il più idiomatico per Rails e i due precedenti sarebbero utili per condizioni più complesse in cui il concatenamento è troppo ingombrante o non funziona (come quando è necessario un OR nella clausola WHERE).