我在MySQL操作的结果中得到了NULL
值。
是否存在一种将NULL
值转换为0的方法?
COALESCE
函数。SELECT COALESCE(null_column, 0) AS null_column FROM whatever;
我添加这个答案是因为没有人提到 IFNULL
函数
你可以使用IFNULL
SELECT IFNULL(column_name, 0) FROM table_name;
IFNULL
函数将返回列的值(如果它不是NULL
),否则将返回传递的第二个参数(在本例中为0
)。
SELECT IFNULL(column1, column2) FROM table
或者 SELECT IFNULL(column1, 0) AS alias1, IFNULL(column2, 0) AS alias2 FROM table
。但是如果你想在一个表达式中使用超过两个列,那么你需要使用 COALESCE
,像这样 SELECT COALESCE(column1, column2, column3, column4, 0) FROM table
。COALESCE
将返回参数中第一个非空值。 - Arif如果您在现有的表格布局中出现了空值并且想要零值,则可以使用以下解决方案:
UPDATE `table` SET `somefield`=0 WHERE `somefield` is null
有一个COALESCE
方法,它返回第一个非空参数,在您的情况下:
COALESCE(field, 0)
COALESCE(field1, field2, 0)
MySQL:
SELECT COALESCE(Mycolumn, 0);
你可以通过强制类型转换将0值放入你的插入输入方法中:(int)0
COALESCE
是 ANSI 标准,受 SQL Server 2000+、Oracle 9i+、MySQL 4.1+ 支持,不确定 PostgreSQL 或 SQLite 的版本支持情况。 - OMG Poniescoalesce()
。比如说,MySQL 3.23就支持该函数,而这已经是最基础的数据库之一了。 - Evan Carroll