我在查询中使用mysql ifnull
,如果id
为null,那么它应该返回1
但它不起作用,我觉得语法很好......是什么问题?
我正在使用的查询是:
SELECT IFNULL(id,1) autoid FROM tb_orders
答案 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