无法使用 mysql 递增空集

Can't increment an empty set with mysql

我正在尝试编写一个更新来增加 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)

我错过了什么?

这似乎有效:

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

假设序列中只有 1 行。诀窍是右连接到只有一行的假 table,然后使用 ifnull 获得想要的值。