Mysql计数连续变化

时间:2015-10-08 14:00:16

标签: mysql

我有一个查询,我在INSEL上执行唯一但重复更新。

现在我想计算更改/更新行的次数。这可以在同一个查询中执行吗?

$query = "INSERT INTO table(
                      column1,
                      column2)
                VALUES(
                      value1,
                      value2)
                ON DUPLICATE KEY UPDATE
                      column1 = VALUES(column1),
                      column2 = VALUES(column2),
                      column3 = column3+1";  //SOMETHING LIKE THIS?

更新 实际上这似乎是按原样运作的!

2 个答案:

答案 0 :(得分:0)

我的目标是创建一个新的表日志,每次插入/更新查询时都要添加一行。 要查看结果,只需在日志表中使用COUNT函数。

答案 1 :(得分:0)

好的,按照要求,

如果您的架构具有任何类型的唯一键(例如主键或任何其他唯一键,复合或非复合键),那么Insert On Duplicate Key Update又称IODKU将起作用,因为我看到它

要测试的一个简单案例是将1插入column3,或者在Update触发的情况下,将column3递增。

可以看到IODKU的一个示例here紧跟我认为你正在做的事情,但它有一个独特的复合键,用于该绅士的问题。

请注意,如果没有会创建唯一键冲突的唯一键,IODKU将无效。正是这种冲突导致IODKU的更新部分成功。意思是,如果没有这样一个唯一的密钥,你只需要添加另一行。

我之所以这么说,是因为很多人在模式中没有这样的密钥的情况下尝试它,然后想知道为什么另一行违背他们的意愿。

Insert on Duplicate Key Update上的Mysql手册页。