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

Mengapa ' 2'> '10'?

Saya pikir PostgreSQL secara otomatis mencoba mencari tahu tipe di balik layar dan di Linux ia mencoba menghilangkan tanda ' ', beberapa perbandingan juga didasarkan pada lokal.

  • Jadi, ' 2' > '10' menjadi '2'>'10' dan perbandingannya adalah '2'>'1'; mereka tidak sama, jadi tidak perlu melanjutkan dengan sisa string, dan ascii('2') lebih besar dari ascii('1') , sehingga bernilai benar.

  • Jika itu adalah operasi kesetaraan (mis. ' 22' ='22 ') itu akan menghasilkan false karena Postgres melakukan perbandingan byte demi byte. Ini penting karena mesin menggunakan dua algoritme yang berbeda saat melakukan perbandingan.

  • Jika Anda menentukan jenis melalui typecasting, maka itu tidak akan menimpa aturan spasi (' '=>'' ).

Juga kredit diberikan kepada: RhodiumToad dan Peerce di #postgresql



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara melewati dengan catatan lebih lanjut lainnya ketika mencapai kondisi?

  2. Kueri 'COMMIT' yang tahan lama dengan status 'idle' di pg_stat_activity

  3. Bagaimana cara menghitung semua node (baris) yang terhubung dalam grafik di Postgres?

  4. Ubah Tanggal menjadi Hari Julian di PostgreSQL

  5. Apakah ada fungsi hash di PostgreSQL?