在MySQL中将null替换为0

Nul*_*uli 53 mysql sql null

我NULL在MySQL的操作结果中得到了值.

有没有办法将NULL值转换为值0?

Tee*_*kin 68

是的,通过使用COALESCE.

SELECT COALESCE(null_column, 0) AS null_column FROM whatever;

COALESCE遍历您给出的值列表,并返回第一个非空值.

  • +1:`COALESCE`是ANSI,由SQL Server 2000 +,Oracle 9i +,MySQL 4.1+支持,不知道PostgreSQL或SQLite的版本...... (3认同)
  • 我认为每个具有 SQL 接口的 3VL DB 都支持“coalesce()”。案例和要点,[它是在 MySQL 3.23 中](http://www.norrnod.se/norrnod/dokumentation/mysql/3.23.45/manual_toc.html#Comparison_Operators),它大约与桶的底部一样接近你可以得到。 (2认同)

Ari*_*rif 56

我正在添加这个答案,因为没有人提到IFNULL功能

你可以使用IFNULL

SELECT IFNULL(column_name, 0) FROM table_name;
Run Code Online (Sandbox Code Playgroud)

IFNULL将返回列的值(如果它有其他内容NULL)否则传递第二个参数(在这种情况下0).


Ale*_*ich 9

如果您搞砸了,并且现有表布局中有NULL并且想要零,那么这里是解决方案:

UPDATE `table` SET `somefield`=0 WHERE `somefield` is null
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案 (2认同)

Col*_*ert 7

COALESCE在您的情况下,有返回第一个非空参数的方法:

COALESCE(field, 0)
Run Code Online (Sandbox Code Playgroud)

但是如果你想要更多,你可以使用它:

COALESCE(field1, field2, 0)
Run Code Online (Sandbox Code Playgroud)