Node.js MySQL查询错误

时间:2017-08-08 14:49:50

标签: mysql sql node.js sql-update

我正在尝试在我的应用程序中实现一个简单的MySQL数据库。如果此用户存在,它应添加新的用户或更新。我正在使用Node.js mysql。

我的代码是:

INSERT INTO User ? ON DUPLICATE KEY UPDATE cost=VALUES(cost),
city=VALUES(city), romantik=VALUES(romantik),
kultur=VALUES(kultur), abenteuer=VALUES(abenteuer), 
familie=VALUES(familie), citytrip=VALUES(citytrip), 
kreuzfahrt=VALUES(kreuzfahrt)

,输出代码为:

'INSERT INTO User `userId` = 566160350174682, `cost` = 400,
`city` = \'Berlin\', `romantik` = false,
`kultur` = true, `abenteuer` = true, `familie` = false,
`citytrip` = true, `kreuzfahrt` = false ON DUPLICATE KEY
UPDATE cost=VALUES(cost), city=VALUES(city), kultur=VALUES(kultur),
abenteuer=VALUES(abenteuer), familie=VALUES(familie),
citytrip=VALUES(citytrip), kreuzfahrt=VALUES(kreuzfahrt)'

据我所知这应该可以工作,但它总是会返回此错误:

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得正确的语法,使用在{'userId = 566160350174682,cost = 400,city = \'柏林\'附近第1行< / p>

有人可以解释为什么会发生这种情况以及如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您必须使用SET ..

您的查询应该是

INSERT INTO User SET `userId` = 566160350174682, `cost` = 400,
`city` = \'Berlin\', `romantik` = false, `kultur` = true, 
`abenteuer` = true, `familie` = false, `citytrip` = `kreuzfahrt` = false ON DUPLICATE KEY UPDATE cost=VALUES(cost), city=VALUES(city), kultur=VALUES(kultur),
abenteuer=VALUES(abenteuer), familie=VALUES(familie), citytrip=VALUES(citytrip), kreuzfahrt=VALUES(kreuzfahrt)