表样本:
+--------+--------+-------+
| source | target | count |
+--------+--------+-------+
| cat | dog | NULL |
| dog | cat | NULL |
+--------+--------+-------+
MySQL代码:
update test set count = count+1 where source ='dog' and target='cat';
执行此MySQL代码后,count列必须为1
,但它永远不会工作,
我们应该给count
一个初始值吗?这个表每秒都会成长,所以我无法使用COUNT(*)
来解决这个问题,有什么建议吗?
答案 0 :(得分:2)
您应该alter
您的表格并设置default
值0
。您可以使用modify
或change
(您应该将int
替换为您的数据类型):
alter table `tbl` modify column `count` int not null default 0;
答案 1 :(得分:1)
您可以使用COALESCE
将NULL
设为零。
update test set count = coalesce(count,0)+1 where source ='dog' and target='cat';
答案 2 :(得分:1)
您可以使用IFNULL
将null
值更改为0
,
update test set count = IFNULL(count, 0) +1 where source ='dog' and target='cat';
答案 3 :(得分:0)
我不知道您的数据计数类型,但会回答您使用默认值为0的int,然后使用相同查询的增量更新。如果查询可能有问题,请将其打印在前面和后面。在后端执行..这将解决..