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

MySQL Query tampaknya tidak menghasilkan harapan

Anda mendapatkan baris itu karena Anda membandingkan string. "500" >= "60" benar, karena urutan karakter ASCII.

Anda harus mengubah jenis minutes kolom atau parsing nilai saat memfilter data. Mis.

SELECT *, CONVERT(minutes,UNSIGNED INTEGER) AS minutes_int
...
WHERE
...
AND `minutes_int` >= 600
...

Seperti juga bisa mencoba membandingkan nilai string dengan nilai integer secara langsung, mis.

AND `minutes` >= 600

dengan menghapus koma, tetapi saya menyarankan Anda untuk berpikir tentang mengubah format kolom, jika memungkinkan, karena mewakili menit sebagai varchar(11) tidak benar dan juga akan membuat Anda menempati banyak ruang tanpa alasan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batasi hasil kueri SQL di MySQL

  2. Permintaan MySQL - Gabungkan data berdasarkan dua faktor, lalu sesuaikan cara data diurutkan berdasarkan nilai

  3. Pertemuan Kesalahan Fatal Selama Eksekusi Perintah MySQL VB

  4. Beberapa Pengaturan Pusat Data Menggunakan Galera Cluster untuk MySQL atau MariaDB

  5. praktik terbaik sql saya dengan php untuk menghitung baris