sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er bedst at kontrollere, om varen findes eller ej:Vælg Antal(ID)ELLER Eksisterer(...)?

EKSISTERER, altid

  • COUNT vil krydse tabellen eller et indeks:du bad om et COUNT
  • EXISTS stopper, så snart den finder en række

Rediger for at være tydelig

Selvfølgelig, i dette tilfælde, hvis e-mail-kolonnen er unik og indekseret, vil den være tæt.

Generelt vil EXISTS bruge færre ressourcer og er også mere korrekt. Du leder efter eksistensen af ​​en række, ikke "mere end nul", selvom de er ens

Edit2:I EXISTS kan du bruge NULL, 1, ID eller endda 1/0:det er ikke markeret...

21. maj 2011 redigering:

Det ser ud til, at dette er optimeret i SQL Server 2005+, så COUNT er nu det samme som EXISTS i dette tilfælde



  1. Hvordan indsætter jeg en tom række, men har autonummeropdateringen korrekt?

  2. Hvad er en Postgres-session?

  3. Sqlcmd til at generere fil uden stiplet linje under overskrift, uden rækkeantal

  4. CodeIgniter:Kan ikke oprette forbindelse til din databaseserver ved hjælp af de angivne indstillinger Fejlmeddelelse