Search code examples
sqldatabasewhere-clause

why would you use WHERE 1=0 statement in SQL?


I saw a query run in a log file on an application. and it contained a query like:

SELECT ID FROM CUST_ATTR49 WHERE 1=0

what is the use of such a query that is bound to return nothing?


Solution

  • A query like this can be used to ping the database. The clause:

    WHERE 1=0
    

    Ensures that non data is sent back, so no CPU charge, no Network traffic or other resource consumption.

    A query like that can test for:

    • server availability
    • CUST_ATTR49 table existence
    • ID column existence
    • Keeping a connection alive
    • Cause a trigger to fire without changing any rows (with the where clause, but not in a select query)
    • manage many OR conditions in dynamic queries (e.g WHERE 1=0 OR <condition>)