在MySQL中使用php更新增长表中的计数

时间:2015-05-01 11:08:33

标签: php mysql sql

表样本:

+--------+--------+-------+
| 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(*)来解决这个问题,有什么建议吗?

4 个答案:

答案 0 :(得分:2)

您应该alter您的表格并设置default0。您可以使用modifychange(您应该将int替换为您的数据类型):

alter table `tbl` modify column `count` int not null default 0;

答案 1 :(得分:1)

您可以使用COALESCENULL设为零。

update test set count = coalesce(count,0)+1 where source ='dog' and target='cat';

答案 2 :(得分:1)

您可以使用IFNULLnull值更改为0

update test set count = IFNULL(count, 0) +1 where source ='dog' and target='cat';

答案 3 :(得分:0)

我不知道您的数据计数类型,但会回答您使用默认值为0的int,然后使用相同查询的增量更新。如果查询可能有问题,请将其打印在前面和后面。在后端执行..这将解决..