PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để bạn trích dẫn chuỗi trong Postgres

Như đã đề cập trong các nhận xét, hầu hết các cơ sở dữ liệu sử dụng dấu ngoặc kép cho chuỗi ký tự và dấu ngoặc kép cho số nhận dạng. MySQL khá lỏng lẻo và cũng sẽ chấp nhận dấu ngoặc kép cho các ký tự chuỗi nhưng PostgreSQL (rất may) khá nghiêm ngặt. Vì vậy, bạn muốn sử dụng các dấu ngoặc kép:

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

hoặc sử dụng where :

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

hoặc sử dụng hợp lý các phương tiện trích dẫn của trình điều khiển cơ sở dữ liệu:

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

Và để dành những gì tốt nhất cuối cùng, theo cách mà những người hợp lý làm bằng cách sử dụng trình giữ chỗ hoặc đối số băm cho where :

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

Câu cuối cùng sẽ là câu thành ngữ nhất đối với Rails và hai câu trên sẽ hữu ích cho những điều kiện phức tạp hơn khi chuỗi quá cồng kềnh hoặc không hoạt động (chẳng hạn như khi bạn cần OR trong mệnh đề WHERE của mình).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cho phép rỗng trong cột duy nhất

  2. Hướng dẫn phân vùng dữ liệu trong PostgreSQL

  3. Mã hóa (<columnName>, 'Escape') tương đương PostgreSQL trong java là gì?

  4. Làm thế nào để thực hiện nhiều truy vấn bằng cách sử dụng lệnh psql từ bash shell?

  5. Không thể đăng nhập vào postgres của người dùng hệ thống