Filter NULL value records in SQL cannot be used = NULL or != NULL, 1. IS NULL or IS NOT NULL must be used; 2. For example, users who find email column NULL should write SELECT * FROM users WHERE email IS NULL; 3. Multi-field simultaneous judgment can combine multiple IS NULL conditions, such as OR or AND connections; 4. COALESCE can replace NULL values ??for display or default processing, but are not applicable to filtering. Because NULL represents an unknown value and does not participate in the comparison operation of equal or non-equal, = NULL will not return the result and will not report an error. The WHERE clause only accepts TRUE lines, ignores FALSE and UNKNOWN, so the NULL value can only be correctly judged by IS NULL/IS NOT NULL.
In SQL query, if you need to filter out records with a column value of NULL
, you cannot use = NULL
or != NULL
directly, because NULL
represents "unknown" or "non-existent value" in SQL and does not participate in regular comparison operations. The correct way to do this is to use IS NULL
or IS NOT NULL
.

Use IS NULL
to filter empty values
To find out a record whose column is NULL
, the syntax is very simple:

SELECT * FROM table_name WHERE column_name IS NULL;
For example, you have a user table users
, where email
column may be empty, you can query all users who have not filled in the email address like this:
SELECT * FROM users WHERE email IS NULL;
This method is the most common and recommended method. Remember, only IS NULL
and IS NOT NULL
can correctly judge the NULL
value.

Why can't you use = NULL
?
Many beginners mistakenly think that they can write like this:
SELECT * FROM users WHERE email = NULL;
But in fact, this statement will not return any results and will not report an error, which can easily make people misunderstand whether the logic is correct. Because in SQL, NULL
represents an unknown value, it is neither equal to any value nor equal to any value. That is to say:
-
NULL = NULL
returnsUNKNOWN
-
NULL != 'something'
also returnsUNKNOWN
The WHERE
clause will only select lines with the expression TRUE
, ignoring FALSE
and UNKNOWN
. So using = NULL
is invalid.
How to deal with situations where multiple fields can be NULL?
If you need to check whether multiple fields are NULL
at the same time in one query, you can use multiple IS NULL
conditions in combination:
SELECT * FROM users WHERE first_name IS NULL OR last_name IS NULL;
Or find cases where both fields are empty:
SELECT * FROM users WHERE first_name IS NULL AND last_name IS NULL;
This writing method is clear and suitable for data cleaning or troubleshooting missing information.
Tips: Use COALESCE
to make default judgments (not direct filtering)
Although COALESCE
is not used to filter NULL
, it is a common function for processing NULL
values. It can replace NULL
with a default value to facilitate other judgments or displays:
SELECT name, COALESCE(email, 'No email provided') AS email_info FROM users;
However, this method is more suitable for use in SELECT
part, rather than using it instead of IS NULL
to filter data.
Basically that's it. Remember one thing: only IS NULL
can be used to filter NULL
, there is no other way.
The above is the detailed content of How to filter for NULL values in a SQL WHERE clause?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Keysshouldbedefinedinemptytablestoensuredataintegrityandefficiency.1)Primarykeysuniquelyidentifyrecords.2)Foreignkeysmaintainreferentialintegrity.3)Uniquekeyspreventduplicates.Properkeysetupfromthestartiscrucialfordatabasescalabilityandperformance.

ThespecialcharactersinSQLpatternmatchingare%and,usedwiththeLIKEoperator.1)%representszero,one,ormultiplecharacters,usefulformatchingsequenceslike'J%'fornamesstartingwith'J'.2)representsasinglecharacter,usefulforpatternslike'_ohn'tomatchnameslike'John

Pattern matching is a powerful feature in modern programming languages ??that allows developers to process data structures and control flows in a concise and intuitive way. Its core lies in declarative processing of data, reducing the amount of code and improving readability. Pattern matching can not only deal with simple types, but also complex nested structures, but it needs to be paid attention to its potential speed problems in performance-sensitive scenarios.

OLTPisusedforreal-timetransactionprocessing,highconcurrency,anddataintegrity,whileOLAPisusedfordataanalysis,reporting,anddecision-making.1)UseOLTPforapplicationslikebankingsystems,e-commerceplatforms,andCRMsystemsthatrequirequickandaccuratetransactio

Toduplicateatable'sstructurewithoutcopyingitscontentsinSQL,use"CREATETABLEnew_tableLIKEoriginal_table;"forMySQLandPostgreSQL,or"CREATETABLEnew_tableASSELECT*FROMoriginal_tableWHERE1=2;"forOracle.1)Manuallyaddforeignkeyconstraintsp

To improve pattern matching techniques in SQL, the following best practices should be followed: 1. Avoid excessive use of wildcards, especially pre-wildcards, in LIKE or ILIKE, to improve query efficiency. 2. Use ILIKE to conduct case-insensitive searches to improve user experience, but pay attention to its performance impact. 3. Avoid using pattern matching when not needed, and give priority to using the = operator for exact matching. 4. Use regular expressions with caution, as they are powerful but may affect performance. 5. Consider indexes, schema specificity, testing and performance analysis, as well as alternative methods such as full-text search. These practices help to find a balance between flexibility and performance, optimizing SQL queries.

IF/ELSE logic is mainly implemented in SQL's SELECT statements. 1. The CASEWHEN structure can return different values ??according to the conditions, such as marking Low/Medium/High according to the salary interval; 2. MySQL provides the IF() function for simple choice of two to judge, such as whether the mark meets the bonus qualification; 3. CASE can combine Boolean expressions to process multiple condition combinations, such as judging the "high-salary and young" employee category; overall, CASE is more flexible and suitable for complex logic, while IF is suitable for simplified writing.

SQL'spatternmatchinghaslimitationsinperformance,dialectsupport,andcomplexity.1)Performancecandegradewithlargedatasetsduetofulltablescans.2)NotallSQLdialectssupportcomplexregularexpressionsconsistently.3)Complexconditionalpatternmatchingmayrequireappl
