如何在MySQL SELECT语句中使用NULL?
在MySQL数据库中,NULL代表没有值或未知值。在某些情况下,您希望使用NULL来搜索或过滤数据。本文将介绍如何在MySQL SELECT语句中使用NULL。
阅读更多:MySQL 教程
语法
在MySQL中,您可以使用IS NULL或IS NOT NULL运算符来测试NULL值。这些运算符不允许在WHERE子句中使用。例如:
SELECT column1, column2 FROM table_name WHERE column1 IS NULL;
SELECT column1, column2 FROM table_name WHERE column2 IS NOT NULL;
您也可以使用IFNULL函数来处理NULL值。IFNULL函数将返回第一个非NULL表达式。例如:
SELECT IFNULL(column1, column2) FROM table_name;
示例
假设我们有一个名为“employees”的表,其中包含以下数据:
emp_id | first_name | last_name | salary |
---|---|---|---|
1 | John | Doe | 5000 |
2 | Jane | Smith | NULL |
3 | Mike | Johnson | 6000 |
4 | Mary | Williams | NULL |
5 | Tom | Wong | 5500 |
以下是在此表中使用NULL的示例:
查询NULL值
要查找salary为NULL的所有记录,请使用以下查询:
SELECT emp_id, first_name, last_name FROM employees WHERE salary IS NULL;
返回结果:
emp_id | first_name | last_name |
---|---|---|
2 | Jane | Smith |
4 | Mary | Williams |
查询非NULL值
要查找salary不为NULL的所有记录,请使用以下查询:
SELECT emp_id, first_name, last_name FROM employees WHERE salary IS NOT NULL;
返回结果:
emp_id | first_name | last_name |
---|---|---|
1 | John | Doe |
3 | Mike | Johnson |
5 | Tom | Wong |
处理NULL值
假设您希望显示salary为NULL的员工的姓名和“N/A”字符串。您可以使用IFNULL函数来实现此目的。使用以下查询:
SELECT first_name, last_name, IFNULL(salary, 'N/A') as salary FROM employees;
返回结果:
first_name | last_name | salary |
---|---|---|
John | Doe | 5000 |
Jane | Smith | N/A |
Mike | Johnson | 6000 |
Mary | Williams | N/A |
Tom | Wong | 5500 |
结论
在MySQL SELECT语句中使用NULL是非常普遍的。您可以使用IS NULL和IS NOT NULL运算符来测试NULL值,还可以使用IFNULL函数来处理NULL值。使用这些技术,您可以轻松地过滤和处理表中的NULL值。