2017-07-06 141 views
0

站点已经内置在使用SQL Server存储过程的.Net中。现在我们正在转换为PHP,因为我们也在改变MySQL中的存储过程。MSSQL存储过程转换为MySQL

在存储过程的一个有一些代码到多个插入和更新其在SQL存储过程如下实现:

MERGE 
    INTO products T 
    USING SELECT STATEMENT 
WHEN MATCHED 
    THEN UPDATE STATEMENT 
WHEN NOT MATCHED 
     THEN INSERT STATEMENT 

我需要在MySQL存储过程的语法这种方法的替代方案。请指导我如何才能做到这一点。

+2

您应该尝试**自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

回答

1

您应该可以用on duplicate key update替换它。

为此,您需要在指定“匹配”的列上使用唯一键。

注意:这将(绝对)不会取代所有merge代码。然而,你的例子似乎是在实现这个逻辑。否则,您可以使用ifupdateinsert语句几乎可以做同样的事情。

+0

由此我怎样才能实现两列除键列以外的组合来决定是否更新记录。 – Ankit