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

SELECT tidak peka huruf besar-kecil PostgreSQL pada array

Salah satu alternatif yang tidak disebutkan adalah menginstal citext ekstensi yang datang dengan PostgreSQL 8.4+ dan menggunakan larik citext :

regress=# CREATE EXTENSION citext;
regress=# SELECT 'foo' = ANY( '{"Foo","bar","bAz"}'::citext[] );
 ?column? 
----------
 t
(1 row)

Jika Anda ingin benar tentang hal ini dan menghindari ekstensi, Anda harus melakukan beberapa subquery yang cukup jelek karena Pg tidak memiliki banyak operasi larik kaya, khususnya tidak ada operasi pemetaan fungsional. Sesuatu seperti:

SELECT array_agg(lower(($1)[n])) FROM generate_subscripts($1,1) n;

... di mana $1 adalah parameter larik. Dalam kasus Anda, saya pikir Anda dapat sedikit curang karena Anda tidak peduli dengan menjaga urutan array, sehingga Anda dapat melakukan sesuatu seperti:

SELECT 'foo' IN (SELECT lower(x) FROM unnest('{"Foo","bar","bAz"}'::text[]) x);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tentukan Skema PostgreSQL di Django

  2. Django ORM salah membaca urutan PostgreSQL?

  3. Python psql \menyalin CSV ke server jauh

  4. ActiveRecord::StatementInvalid:PG::Error:ERROR:tidak dapat menjalankan UPDATE dalam kesalahan transaksi read-only di Heroku

  5. NLog ke koneksi PostgreSQL