sql >> Database teknologi >  >> RDS >> Mysql

Hvordan skriver man en null sikker sammenligne <=> i ren SQL?

De næstrangerede og efterfølgende svar giver en metode til at gøre dette uden at binde søgeværdien to gange:

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

Bemærk, at dette kræver en dummy-værdi, der aldrig kan være gyldig kolonneværdi (det er "uden for båndet"); Jeg bruger den tomme streng. Hvis du ikke har en sådan værdi, skal du finde dig i at binde værdien to gange:

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


  1. Parse JSON i TSQL

  2. Sådan ændres bruger til superbruger i PostgreSQL

  3. Navne på databasetabel i ental eller flertal?

  4. Bedste måde at nulstille en Oracle-sekvens til den næste værdi i en eksisterende kolonne?