我正在尝试编写一个会增加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)
我错过了什么?
答案 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来获得想要的值。