Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中组合插入、更新和选择_Mysql_Select_Insert - Fatal编程技术网

在MySQL中组合插入、更新和选择

在MySQL中组合插入、更新和选择,mysql,select,insert,Mysql,Select,Insert,有没有办法将insert、update和select查询合并为一个查询 有点像在某种情况下, 如果选择查询,当条件为真时,它将转到更新,如果不是,它将转到插入 我怎样才能做到这一点呢?存储过程就是答案,如果/ELSE否,则在单个SQL语句的上下文中是不可能的 可以将操作组合、插入和更新到单个语句中。插入。。。ON DUPLICATE KEY UPDATE语句基本上会尝试插入一行,如果该插入导致“DUPLICATE KEY”异常,则将执行更新操作 但是,对于使用SELECT语句测试一些常规条件,然

有没有办法将insert、update和select查询合并为一个查询

有点像在某种情况下, 如果选择查询,当条件为真时,它将转到更新,如果不是,它将转到插入


我怎样才能做到这一点呢?

存储过程就是答案,如果/ELSE

否,则在单个SQL语句的上下文中是不可能的

可以将操作组合、插入和更新到单个语句中。
插入。。。ON DUPLICATE KEY UPDATE
语句基本上会尝试插入一行,如果该插入导致“DUPLICATE KEY”异常,则将执行更新操作


但是,对于使用SELECT语句测试一些常规条件,然后根据查询结果运行INSERT或UPDATE,答案是否定的,MySQL没有任何单语句语法来支持这一点。

查找“重复密钥更新时插入”在文档中。您使用的是哪种脚本语言?请看以下内容:是否可以在mysql查询中设置if/else条件?抱歉问了这个愚蠢的问题,是吗?在SELECT only IF或CASE。。。没有如果/否则。我建议在存储过程中使用IF/ELSE。在重复密钥更新时插入…效果很好:)谢谢!