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

Tại sao '2'> '10'?

Tôi nghĩ rằng PostgreSQL tự động cố gắng tìm ra loại đằng sau hậu trường và trong Linux, nó cố gắng loại bỏ '', một số so sánh cũng dựa trên ngôn ngữ.

  • Do đó, ' 2' > '10' trở thành ' 2' > '10' và so sánh là '2'>'1'; chúng không bằng nhau, vì vậy không cần tiếp tục với phần còn lại của chuỗi và ascii('2') lớn hơn ascii('1') , vì vậy nó đánh giá là true.

  • Nếu đó là một phép toán bình đẳng (ví dụ:'22' ='22 '), nó sẽ dẫn đến sai vì Postgres thực hiện so sánh từng byte. Điều này rất quan trọng vì công cụ sử dụng hai thuật toán khác nhau khi thực hiện so sánh.

  • Nếu bạn chỉ định loại thông qua đánh máy, thì nó sẽ không ghi đè các quy tắc khoảng trắng (' '=>'' ).

Ngoài ra, tín dụng sẽ được chuyển đến: RhodiumToad và Peerce trong #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. Postgresql - một cơ sở dữ liệu cho mọi người hoặc một cơ sở dữ liệu cho mỗi khách hàng

  2. NGHE hết thời gian chờ truy vấn với node-postgres?

  3. Thay đổi đối chiếu cơ sở dữ liệu, Ctype trong Postgresql

  4. Postgres COUNT số giá trị cột với INNER JOIN

  5. Làm cách nào để lặp lại một bảng theo các khoảng thời gian cố định trong Postgres?