mysql - mysql 中 ON DUPLICATE KEY UPDATE 查询中的问题

标签 mysql

我已经设置了这个查询

 INSERT INTO pa_users (fname,lname,email,phone,fbid) VALUES ?
    ON DUPLICATE KEY UPDATE fbid=VALUES(fbid),
    fname= VALUES(fname),lname= VALUES(lname),email= VALUES(email),phone= VALUES(phone)

我正在传递这个对象

{ 
   fname: 'Demo',
   lname: 'User',
   email: 'demo@facebook.com',
   phone: '6352417890',
   fbid: 'KHFDALJHGJDGWKGKDFDAFAJKLGEKLQAW' 
}

运行此查询时出现 SQL 语法错误。

注意:fbid 不是 pk。

错误:

 code: 'ER_PARSE_ERROR',
 errno: 1064,
 sqlMessage: 'You have an error in your SQL syntax; check the manual that 
 corresponds to your MariaDB server version for the right syntax to use near 
 \'`fname` = \'Demo\', `lname` = \'user\', `email` = \'user@facebook.com\', 
 `phone` = \'63\' at line 1',
 sqlState: '42000',
 index: 0,
 sql: 'INSERT INTO pa_users (fname,lname,email,phone,fbid) VALUES `fname` = 
 \'Demo\', `lname` = \'user\', `email` = \'user@facebook.com\', `phone` = 
 \'6352417890\', `fbid` = \'KHFDALJHGJDGWKGKDFDAFAJKLGEKLQAW\'\n        ON 
 DUPLICATE KEY UPDATE fbid=VALUES(fbid),\n        fname= 
 VALUES(fname),lname= VALUES(lname),email= VALUES(email),phone= 
 VALUES(phone)' }

最佳答案

尝试拆分您的查询,例如

INSERT INTO table(a, b) values ('fgfg', 'fgfg') ON DUPLICATE KEY UPDATE 
fbid=VALUES(fbid);

关于mysql - mysql 中 ON DUPLICATE KEY UPDATE 查询中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54474452/

相关文章:

mysql - MySQL 中的上一行值

php - Laravel 查询格式 - 连接到最新行

php - FPDF-如果一个多电池受到影响,如何调整其他多电池?

mysql - Laravel 4.2 打开与主数据库的第二个数据库连接

mysql - 如何获取最大数量用户投票的最大评分MovieId

mysql - 数据库:表设计/结构

mysql - 无法存储输入值的日期

sql - 计划的数据库设计

php - 显示多行(WHILE)图标

mysql - 我是否需要在同一台机器上安装 mysql 才能使用 mysql2 gem?