【问题标题】:INSERT INTO UPDATE with multiple unique column in mysql在mysql中插入多个唯一列的更新
【发布时间】:2014-02-03 09:38:17
【问题描述】:

我有一张桌子,上面有(id, stock_code, batch_code, qty)

id 是主键和自增值。

stock_codebatch_code 是唯一的组合。现在我想在 stock_codebatch_code 重复时更新插入查询

例子

id     stock_code     batch_code      qty
1      r001           b001            100
2      roo1           b002            100    //it should be insert
3      roo1           boo1            120    //it should be update in first row
4      roo2           boo1            130    //it should be insert
5      roo1           boo2            289    //it should be update in second row

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:
    $stockcode = "some value";
    $batchcode="some value";
    $qty = some value;
    $con=mysqli_connect("localhost","my_user","my_password","my_db");
    
    $query22 = "select * from table where stock_code= '".$stockcode."' and batch_code='".$batchcode."'";
    
    $result22 = mysqli_query($con,$query22) or die (mysqli_error());
    
    $num22 = mysqli_num_rows($con,$result22);
    
    if($num22 > 0) {
    $query222 = "update table set qty='".$qty."' where stock_code= '".$stockcode."' and batch_code='".$batchcode."'";
    
    $result222 = mysqli_query($con,$query222) or die (mysqli_error($con));  
     }
    else {
    $query222 = "insert into table(stock_code, batch_code, qty) values('".$stockcode."','".$batchcode."','".$qty."') ";
    
    $result222 = mysqli_query($con,$query222) or die (mysqli_error($con));
    }
    

    【讨论】:

    • @NullPoiиteя 它仅在 5.5 中被弃用,但在 php
    • 没有 php
    • 我不是在评论你,我评论的主要原因是通知你,当你告诉别人使用推荐的mysqli_ *函数时,请不要忘记提及它是从哪个版本可用的,因为每个人都没有意识到这一点。不管怎样,谢谢你让我使用更好的做法。
    【解决方案2】:

    尝试使用

    ON DUPLICATE KEY UPDATE
    

    你可以在这里阅读参考文献http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

    【讨论】:

      【解决方案3】:

      您正在寻找 INSERT ON DUPLICATE KEY UPDATEhttp://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

      【讨论】:

      • -1 你的答案似乎不像一个答案,因为你在问问题......以及它可能的评论
      • 这是一个反问的问题......反正我正在编辑它
      猜你喜欢
      • 1970-01-01
      • 2014-12-30
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多