无法使用mysql增加空集

时间:2016-06-06 15:01:18

标签: mysql coalesce is-empty ifnull

我正在尝试编写一个会增加auth_id值的更新;但是,如果没有值,我想将其设置为1.我甚至无法让select给我一个0值来增加。

mysql> describe sequences;
+---------+--------------------------+------+-----+---------+-------+
| Field   | Type                     | Null | Key | Default | Extra |
+---------+--------------------------+------+-----+---------+-------+
| auth_id | int(5) unsigned zerofill | NO   |     | 00000   |       |
+---------+--------------------------+------+-----+---------+-------+

我认为这样可行。

mysql> select ifnull(auth_id,0) from sequences;
Empty set (0.00 sec)

或者这......

mysql> select coalesce(auth_id, 0) from sequences;
Empty set (0.00 sec)

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这似乎有效:

select ifnull(sequences.auth_id, x.auth_id) as auth_id from sequences right join (select 1 as auth_id) x on 1;

假设序列中只有1行。诀窍是对一个只有一行的假表进行正确的连接,然后使用ifnull来获得想要的值。