首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL中的条件更新/插入

MySQL中的条件更新/插入
EN

Stack Overflow用户
提问于 2011-07-03 14:18:46
回答 1查看 3.2K关注 0票数 0

我在这里找到了一个关于MySQL的主题,如果,否则的话,我对它进行了修改,但我无法弄清楚它的问题所在。

以下是查询:

代码语言:javascript
运行
复制
IF (SELECT * FROM `jos_import03_07_2011` WHERE `cod_oem` = 'OP-4CL') IS NULL THEN 
INSERT INTO `jos_import03_07_2011` (`tip_imp`, `tip_produs`, `producator`,
    `cod_intern`, `desc`, `cod_oem`, `pret`, `valuta`) VALUES ('Imprimanta Laser', 
    'Piese Schimb', 'BROTHER', 'BR-200503', '', 'OP-4CL', '338.49', 'EUR'); 
ELSE UPDATE `jos_import03_07_2011` SET `pret` = '338.49' WHERE `cod_oem` = 'OP-4CL';
END IF;

这是一个错误:

代码语言:javascript
运行
复制
You have an error in your SQL syntax; check the manual that corresponds to your MySQL     
server version for the right syntax to use near 'IF (SELECT * FROM   
`jos_import03_07_2011` WHERE `cod_oem` = 'OP-4CL') IS NULL THE' at line 1

这是最初的帖子:

条件mySQL语句如果为真更新,则为假插入

谢了,塞巴斯蒂安

更新

如果存在错误代码:

代码语言:javascript
运行
复制
You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near 'IF EXISTS (SELECT * FROM 
`jos_import03_07_2011` WHERE `cod_oem` = 'OP-4CL') THEN' at line 1 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-03 16:15:59

有什么原因不能使用插入..。关于重复键语法吗?

代码语言:javascript
运行
复制
INSERT INTO `jos_import03_07_2011` (`tip_imp`, `tip_produs`, `producator`,
    `cod_intern`, `desc`, `cod_oem`, `pret`, `valuta`)
VALUES ('Imprimanta Laser', Piese Schimb', 'BROTHER', 'BR-200503', '', 'OP-4CL', '338.49', 'EUR')
ON DUPLICATE KEY UPDATE SET pret = VALUES(pret)

它的效率要高得多:少一个查询,要调试的代码少得多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6563426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档