0

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

我错过了什么?

4

1 回答 1

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 来获得想要的值。

于 2016-06-06T15:36:20.500 回答