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

mysql SUM bidang VARCHAR tanpa menggunakan CAST

MySQL melakukan konversi senyap untuk string dalam konteks numerik. Karena mengharapkan angka untuk sum() , MySQL hanya melakukan konversi menggunakan "angka" terkemuka dari sebuah string. Perhatikan bahwa ini termasuk titik desimal, tanda minus, dan bahkan e merepresentasikan notasi ilmiah. Jadi, '1e6' ditafsirkan sebagai angka.

Dalam kode, saya pribadi akan membuat konversi eksplisit dengan menambahkan 0 :

SELECT SUM(parametervalue + 0) FROM table

Ironisnya, cast() mungkin mengembalikan kesalahan jika string tidak dalam format numerik, tetapi ini tidak mengembalikan kesalahan dalam kasus itu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyiapkan instance baru MySQL apa itu Kata Sandi Root Saat Ini?

  2. Bagaimana cara terbaik untuk membandingkan dengan 0 di PHP?

  3. Cara menggunakan bind_result() alih-alih get_result() di php

  4. Rails 4 Memvalidasi keunikan email tanpa case_sensitive

  5. Basis data pencarian PDO menggunakan LIKE