我有这个问题:
mysql_query("
UPDATE users SET
`clicks_yesterday`=`clicks_today`,`clicks_today`=0)
我的数据库中的结构如下所示:
我的问题是,每当我运行上面的查询时,我怎么能这样做,clicks_yesterday得到的是clicks_today的值?
此致
答案 0 :(得分:1)
你就是这样做的。 SQL中的赋值按遇到的顺序进行评估(例如,left - > right)。但是如果你想完全确定正确分配的东西,那么将它分成两个查询:
UPDATE users SET clicks_yesterday = clicks_today;
UPDATE users SET clicks_today = 0;
答案 1 :(得分:0)
对于MySQL你所写的作品。然而,它在不同的DB上是不同的,因此测试非常重要。
这些是我对这个问题的测试
CREATE TABLE `duals` (
`one` int(11) DEFAULT NULL,
`two` int(11) DEFAULT NULL
);
insert into duals values (1, 2);
select * from duals;
+------+------+
| one | two |
+------+------+
| 1 | 2 |
+------+------+
update duals set one = two, two = 0;
select * from duals;
+------+------+
| one | two |
+------+------+
| 2 | 0 |
+------+------+