update short_url
set redirected="2018-08-10 15:07:44",
count=count+1
where long_val="EF7219D6-606D-409B-BEF1-00FFF9FF713C";
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| short_val | varchar(8) | NO | PRI | NULL | |
| long_val | varchar(36) | NO | PRI | NULL | |
| created | datetime | YES | | NULL | |
| redirected | datetime | YES | | NULL | |
| count | int(11) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
重定向日期已与此更新一起更新,但计数未添加?
答案 0 :(得分:1)
我们可以测试NULL值,并将NULL替换为非null值,例如...
UPDATE short_url t
SET t.redirected = '2018-08-10 15:07:44'
, t.count = IFNULL( t.count ,0) + 1
-- ^^^^^^^ ^^^
WHERE t.long_val = '...'
如果count
的当前值为NULL,那么我们将为其分配一个值1
。
请注意,大多数涉及NULL值的表达式都将求值为NULL。我们可以使用IS NULL
条件测试,IFNULL()函数,符合ANSI标准的COALESCE
函数等来处理NULL值。
答案 1 :(得分:0)
您需要做的是确保将字段“ count”的默认值设置为0而不是NULL