无法使用 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 获得想要的值。
我正在尝试编写一个更新来增加 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 获得想要的值。