sql >> Databasteknik >  >> RDS >> PostgreSQL

Behöver du alltid använda coalesce i en WHERE om det kan finnas null/empty-värden i kolumnerna du jämför?

Nej. Användningen av COALESCE() förhindrar i allmänhet att index används. Motsvarande syntax med boolesk logik blir besvärlig.

Den bästa lösningen är att använda IS DISTINCT FROM :

where field1 is distinct from field2

Genom att använda inbyggda operatörer blir det bättre att Postgres kan optimera frågan. IS DISTINCT FROM är ANSI-standardsyntax som förklaras i dokumentationen .



  1. Hur försöker man om transaktionen efter ett dödläge med Doctrine?

  2. Infoga data och ställ in främmande nycklar med Postgres

  3. Hur tvingar man fram återanvändning av anslutningar i jdbc pool?

  4. Magento - Det var ett problem med omindexeringsprocessen - Katalogprodukter