sql >> Database >  >> RDS >> Mysql

Hoe schrijf je een null safe Compare <=> in pure SQL?

De antwoorden op de tweede plaats en de daaropvolgende antwoorden geven een methode om dit te doen zonder de zoekwaarde twee keer te binden:

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

Merk op dat dit een dummy-waarde vereist die nooit een geldige kolomwaarde kan zijn (dat is "out of band"); Ik gebruik de lege string. Als je zo'n waarde niet hebt, moet je de waarde twee keer binden:

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


  1. Krijg alle datums tussen twee datums in SQL Server

  2. Beperking van gegevensrisico's via gegevensmaskering

  3. Perl DBI fetchall_hashref

  4. SQL:selecteer dynamische kolomnaam op basis van variabele