Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa SELECT ... WHERE id =a mengembalikan hasil jika nilainya 0

MySQL secara diam-diam mengubah string menjadi angka dalam konteks numerik.

Ia melakukannya dengan mengonversi karakter numerik utama (seperti angka, tanda minus, dan titik desimal).

Jika tidak ada angka, itu berhenti. Jadi:

where id = 'a'

diartikan sebagai:

where id = 0

Moral:Jangan pernah menggunakan tanda kutip tunggal di sekitar konstanta numerik -- atau konstanta yang seharusnya berupa angka.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NHibernate Lancar tidak dapat memuat MySql.Data dari GAC dalam mode debug pengujian

  2. MySql :Inisialisasi variabel mySql di dalam kueri

  3. Cara mendapatkan 7 hari terakhir menggunakan PHP

  4. CakePHP 3 TIDAK dapat terhubung ke database karena ekstensi PHP yang hilang

  5. Ambil semua catatan induk/anak dari database di Laravel (data hierarkis)