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

Bagaimana cara menulis perbandingan aman nol <=> dalam SQL murni?

Jawaban peringkat kedua dan selanjutnya memberikan metode untuk melakukan ini tanpa mengikat nilai pencarian dua kali:

SELECT * FROM ROUTERS 
WHERE coalesce(ROUTER_ADDRESS, '') = coalesce( ?, '');

Perhatikan bahwa ini membutuhkan nilai dummy yang tidak akan pernah bisa menjadi nilai kolom yang valid (itu "di luar batas"); Saya menggunakan string kosong. Jika Anda tidak memiliki nilai seperti itu, Anda harus memasang nilai tersebut dua kali:

SELECT * FROM ROUTERS 
WHERE ROUTER_ADDRESS = ? or (ROUTER_ADDRESS is null and ? is null);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL SEPERTI % di dalam array

  2. Menggunakan PHP &MySQL untuk mengisi dropdown

  3. Apakah ada fungsi untuk menutup pernyataan yang disiapkan mysql dengan PDO?

  4. MySQL Workbench tidak dapat memuat mysql.proc

  5. GROUP_CONCAT() jumlah baris saat dikelompokkan berdasarkan bidang teks