sql >> Database >  >> RDS >> Sqlserver

Wat is het beste om te controleren of een item bestaat of niet:Selecteer Count(ID)OR Exist(...)?

BESTAAT, altijd

  • COUNT doorloopt de tabel of een index:u heeft om een ​​COUNT gevraagd
  • EXISTS stopt zodra het een rij vindt

Bewerken, voor de duidelijkheid

Als de e-mailkolom in dit geval uniek en geïndexeerd is, zal deze natuurlijk sluiten.

Over het algemeen gebruikt EXISTS minder middelen en is het ook correcter. U zoekt naar het bestaan ​​van een rij, niet "meer dan nul", zelfs als ze hetzelfde zijn

Edit2:In de EXISTS kun je NULL, 1, ID of zelfs 1/0 gebruiken:het is niet aangevinkt...

21 mei 2011 bewerken:

Het lijkt erop dat dit is geoptimaliseerd in SQL Server 2005+, dus COUNT is nu hetzelfde als EXISTS in dit geval



  1. Hoe krijg je alle datums in een maand

  2. Rails 3.2 - ongedefinieerde methode `where' voor #<Array:... - Query van Model.where()

  3. Heeft het zin om een ​​index te gebruiken die een lage kardinaliteit heeft?

  4. Heroku-logboeken zeggen Geen module met de naam 'urlparse' wanneer ik import-urlparse gebruik