我正在尝试更新MySQL表中的时间值,并且无法解决逻辑问题。
我想这样写:
ID Time
1 17:00
2 17:00
3 17:08
4 17:08
5 17:16
6 17:16
等等。
我可以通过在ID号上使用MOD来选择每隔一行,但是我无法为该行指定正确的更新值。
UPDATE `table`
set `Time` = DATE_ADD(Convert('17:00:00',TIME),INTERVAL (`ID`-2)*8 MINUTE)
where `ID` mod 2 = 1
如果您需要任何说明,请提前告知我们并提前致谢。
更新:我应该补充说,如果我有一个可以像上表一样更新的查询,那就更好了!
答案 0 :(得分:0)
你的mod选择的是损伤数而不是对数(每秒)
试试这个
where `ID` mod 2 = 0
答案 1 :(得分:0)
我认为这就是你想要的:
update tbl set `Time` =
ADDDATE('1970-01-01 17:00:00', INTERVAL 8*((`ID`-1) DIV 2) MINUTE);
生成(对于已经有行ID1~6的表):
mysql> select * from tbl;
+------+----------+
| ID | Time |
+------+----------+
| 1 | 17:00:00 |
| 2 | 17:00:00 |
| 3 | 17:08:00 |
| 4 | 17:08:00 |
| 5 | 17:16:00 |
| 6 | 17:16:00 |
+------+----------+
6 rows in set (0.00 sec)