PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengapa cara kerjanya berbeda dengan ~~ any()?

Masalahnya adalah hasil subquery Anda ditafsirkan sebagai string, bukan array. Ini karena kedua bentuk ini berbeda secara semantik:

~~ ANY ('...')  -- will be interpreted as an array literal

dan

~~ ANY (SELECT ...)  -- will compare with all query results in turn

Jadi Anda cukup menulis:

WHERE lower(name) ~~ ANY
      (SELECT DISTINCT '%' || lower(brand) || '%'
       FROM my_table
       WHERE source = 'Orig')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:mendapatkan peringkat ordinal (indeks baris? ) secara efisien

  2. Meratakan relasi dengan array untuk memancarkan satu baris per entri array

  3. Bagaimana cara mengubah jenis kolom di Heroku?

  4. SQLAlchemy dengan default dataclass tidak mengisi database postgres

  5. Penyortiran peka huruf alfanumerik di postgres