sql >> Database teknologi >  >> RDS >> PostgreSQL

Skal du altid bruge coalesce i en WHERE, hvis der kan være null/empty-værdier i de kolonner, du sammenligner?

Nej. Brugen af ​​COALESCE() forhindrer generelt indekser i at blive brugt. Den tilsvarende syntaks ved brug af boolesk logik bliver besværlig.

Den bedste løsning er at bruge IS DISTINCT FROM :

where field1 is distinct from field2

Ved at bruge indbyggede operatører er der en bedre ændring af, at Postgres kan optimere forespørgslen. IS DISTINCT FROM er ANSI-standardsyntaks, som er forklaret i dokumentationen .



  1. SQL_CALC_FOUND_ROWS / FOUND_ROWS() virker ikke i PHP

  2. SQL gruppe efter og min (MySQL)

  3. psql ugyldig kommando \N under gendannelse af sql

  4. Opdel data i 3 kolonner