簡體   English   中英

在MySQL中使用多個UPDATE

[英]Using multiple UPDATE in MySQL

我試圖“強制”此代碼在每一行中運行並更新與上述語句匹配的每一行。

if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){    
        $upd = "UPDATE booking SET status='$status/ADM', verification='No'";
        if($CalDate !=''){
            $upd.= ",CalDate='$CalDate'";
        }
        if($DueDate !=''){
            $upd.= ",DueDate='$DueDate'";
        }
        if($groupid1 != 0){
            $upd.= " WHERE groupid IN ('$groupid1')";
        }
        if($groupid2 != 0){
            $upd.= " WHERE groupid IN ('$groupid2')";
        }
        if($groupid1 == 0){
            $upd.= " WHERE itemid IN ('$itemID1')";
        }
        if($groupid2 == 0){
            $upd.= " WHERE itemid IN ('$itemID2')";
        }
    }

已知錯誤:錯誤無法更新數據原因:SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第1行的“ WHERE itemid IN('143')”附近使用

要么該腳本要么僅更新它所經過的第一行。 至於groupid1!= 0

該錯誤可能是您構建WHERE子句的地方。

可能是由於您要在語句中添加多個WHERE子句。 您的SQL語句只能包含一個WHERE子句。

例如,如果groupid1groupid2不為0,則將得到以下語句:

SELECT ... WHERE groupid IN ('$groupid1') WHERE groupID IN ('$groupid2')

這顯然是無效的。 您需要改為添加單個WHERE子句,然后使用ANDOR添加參數以適當地將它們分開:

SELECT ... WHERE groupid IN ('$groupid1') OR groupID IN ('$groupid2')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM