我正在尝试在我的应用程序中实现一个简单的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>
有人可以解释为什么会发生这种情况以及如何解决这个问题吗?
答案 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)