查询中的MySql IFNULL函数

时间:2014-04-11 06:45:32

标签: mysql

我在查询中使用mysql ifnull,如果id为null,那么它应该返回1但它不起作用,我觉得语法很好......是什么问题?

我正在使用的查询是:

SELECT IFNULL(id,1) autoid FROM tb_orders

2 个答案:

答案 0 :(得分:0)

您可以尝试COALESCE这样:

SELECT COALESCE(id,1) autoid FROM tb_orders

只需在观看您的评论后添加,只有当您的表上有记录时,上述查询才有用。查询空桌就像试图从空冰箱里取冰淇淋! ; - )

答案 1 :(得分:0)

要处理空表,您需要检查返回的行数是否为零

SELECT case COUNT(*) when 0 then 1 else IFNULL(id,1) END as autoid 
FROM tb_orders

SQL Fiddle Demo for Empty table

但是在我看来,当表为空时,你应该使用除1之外的其他值来区分非空值表和空值表。

SELECT case COUNT(*) when 0 then -1 else IFNULL(id,1) END as autoid 
FROM tb_orders