Tag: sql update

在我的WHERE上使用IN来截断不正确的DOUBLE值

到目前为止,我还没有find答案…也许这里有人可以帮助。 我收到以下错误:错误运行查询… ::::错误:ER_TRUNCATED_WRONG_VALUE:截断不正确的DOUBLE值:'2,4' 使用nodejs中的mysql模块运行查询时会发生这种情况。 查询如下: selectQ = "UPDATE usr SET pass = ?, last_updator = ?, last_update = NOW() WHERE id IN (?);" 我这样称呼它: con.query(selectQ,[hash,lupdator,usrs], function (err, rows) {…}); 这工作正常,只要我只有一个数字在usrsvariables,但是当我有一个数字列表(在连接的string,看起来像“2,4”)我得到上面的截断错误。 有任何想法吗? 谢谢! 最终结果: 根据正确的答案,使用准备好的声明为我的“IN”没有工作。 我相信,如果我传递一个单引号string的列表来查找基于文本的数据types,但是查询是将转义的INT传递为文本字符types,那么这样做会正常工作。 Anyhoo …我只是validation我的数组内的所有项目是数字,如果他们是我join数组,并将其传递到准备好的查询。 我不相信这让我暴露在注射,但如果我错了,随时纠正我。 这是我的代码: for(i = 0; i < usr.length; i++){ if(!IsNumeric(usr[i])){ callback("Password hash failed, server side issue.",null); return; } […]

Node.JS + MySQL – 将40多个UPDATE语句凝聚成一个,每个语句都有独特的WHERE子句

我试图制作一个冷却系统,包含一个MySQL数据库来存储冷却时间的“剩余时间”。 我目前有大约50个冷却时间pipe理,每秒更新数据库。 是的,我需要1秒钟的准确性,不,我不能使用variables,因为数据需要在应用程序重新启动后生存。 所以这是我的代码: 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") […]

PostgreSQL 9.1中的UPDATE似乎滥用占位符types

鉴于以下模式(作为例子) CREATE TABLE "test" ( "id" int, "title" varchar ); 在NodeJS中,我尝试使用以下方法进行更新 client.query( 'WITH new_vals ("id","title") AS (VALUES($1,$2)) ' + 'UPDATE "test" "t" SET "id"=nv.id, "title"=nv.title ' + 'FROM new_vals nv ' + 'WHERE "t"."id"=nv.id;', [1,'test'], function(err, res){ … } ); 它给了我以下错误: '错误:运算符不存在:整数=文本' 好的,让我们试着停止使用"t"."id"=nv.id用一个可用的参数: client.query( 'WITH new_vals ("id","title") AS (VALUES($1,$2)) ' + 'UPDATE "test" "t" SET […]

Sequelize:按列更新它的旧值

我正在尝试更新一组数据使用Sequelize由此查询 Users.update({ flag: 'flag & ~ 2' } , { where : { id :{ gt : 2 } } }) 生成的查询是 UPDATE `users` SET `flag`='flag & ~ 2' WHERE id > 2 但应该是 UPDATE `users` SET `flag`=flag & ~ 2 WHERE id > 2 所以我的问题是如何更新数据的旧值 问候

如何使用时间戳上的NOW()来更新Sequelize?

我正在尝试做如下的事情: model.updateAttributes({syncedAt: 'NOW()'}); 显然,这不起作用,因为它只是作为一个string传递。 我想避免传递一个节点构造的时间戳,因为后来我将它与另一个“ON UPDATE CURRENT_TIMESTAMP”字段进行比较,数据库和源可能运行不同的时间。 我唯一的select只是build立一个数据库程序并调用它?