MySQL将NULL转换为整数0

时间:2010-10-31 00:09:53

标签: mysql integer casting

如何将返回NULL的内容转换为0?

如果这是我的问题:select col from table;这是正确的做法:select cast(col as unsigned integer) from table;

谢谢。

2 个答案:

答案 0 :(得分:44)

您可能想要使用COALESCE()功能:

SELECT COALESCE(col, 0) FROM `table`;

COALESCE()会返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL

测试用例:

CREATE TABLE `table` (id int, col int);

INSERT INTO `table` VALUES (1, 100);
INSERT INTO `table` VALUES (2, NULL);
INSERT INTO `table` VALUES (3, 300);
INSERT INTO `table` VALUES (4, NULL);

结果:

+------------------+
| COALESCE(col, 0) |
+------------------+
|              100 |
|                0 |
|              300 |
|                0 |
+------------------+
4 rows in set (0.00 sec)

答案 1 :(得分:3)

您还可以使用IFNULL()功能:

SELECT IFNULL(col, 0) FROM `table`;

IFNULL(expr1, expr2)返回第一个表达式,如果它不为null,则返回第二个表达式。

测试用例:

CREATE TABLE `table` (id int, col int);

INSERT INTO `table` VALUES (1, 100);
INSERT INTO `table` VALUES (2, NULL);
INSERT INTO `table` VALUES (3, 300);
INSERT INTO `table` VALUES (4, NULL);

结果:

+----------------+
| IFNULL(col, 0) |
+----------------+
|            100 |
|              0 |
|            300 |
|              0 |
+----------------+
4 rows in set (0.00 sec)