【发布时间】:2017-11-30 05:56:16
【问题描述】:
我正在尝试制作一个冷却系统,其中包含一个 MySQL 数据库来存储冷却中的“剩余时间”。我目前有大约 50 个冷却时间需要管理,每秒更新一次数据库。是的,我需要 1 秒的准确度,不,我不能使用 vars,因为数据需要在应用程序重新启动后继续存在。所以这是我的代码:
function cooldowns() {
connection.query("UPDATE users SET col1 = col1 - 1 WHERE col1 > 0")
connection.query("UPDATE users SET col2 = col2 - 1 WHERE col2 > 0")
connection.query("UPDATE users SET col3 = col3 - 1 WHERE col3 > 0")
connection.query("UPDATE users SET col4 = col4 - 1 WHERE col4 > 0")
connection.query("UPDATE users SET col5 = col5 - 1 WHERE col5 > 0")
connection.query("UPDATE users SET col6 = col6 - 1 WHERE col6 > 0")
connection.query("UPDATE users SET col7 = col7 - 1 WHERE col7 > 0")
connection.query("UPDATE users SET col8 = col8 - 1 WHERE col8 > 0")
}
我有这些行,其中大约 40-50 行...全部用于不同的列。现在我知道我可以按照UPDATE users SET col1 = asd, col2 = asdf, etc 的方式做一些事情,但问题是WHERE 子句对于每个查询都是唯一的。如何将所有这些浓缩为一个查询?请注意,整个函数中的表名相同,但列和WHERE 子句不同。
【问题讨论】:
标签: javascript mysql node.js database sql-update