php
  • mysql
  • sql
  • sql-update
  • 2012-11-14 86 views 0 likes 
    0

    好吧我想UPDATE我的表列只有當myCheck行不同如何更新SQL只有在具有不同的行

    $query = "UPDATE `mytable` 
        SET myCheck='" . $myCheck . "', myStatus='" . $myStatus . "', myId='" . $myId . "' 
        WHERE my_id = '" . $myId . "' 
        AND myCheck != '" . $myCheck . "' "; 
    

    列存在,我需要UPDATE他們那裏my_id row = $myId(此作品)

    我要檢查,如果這個數據已經在我的SQL,所以我創建myCheck行 但查詢更新不管myCheck行等於$myCheck,還是不行。

    我試圖<>,而不是!= ...相同的結果

    而且我想,當$myId是SQL從這些不同(例如SQL添加my_id行是1,2,3$myId = 4)創建一個新行my_id 4

    也許我必須使用與UPDATE不同的東西?

    任何想法?

    +1

    我認爲你需要 'INSERT ...對重複密鑰更新' http://dev.mysql.com/doc/refman/5.0/ en/insert-on-duplicate.html – aykut

    回答

    0

    好吧,我明白了什麼問題:)

    myCheck排爲VARCHAR(32),和$ myCheck有35個符號......所以總是

    11111111111111111111111111111111 = ! 11111111111111111111111111111111111

    現在myCheck排爲varchar(64),一切工作正常

    0

    嘗試使用「<>」而不是「!=」

    +0

    我試過了,很抱歉忘了在我的問題中發帖...我現在編輯 –

    +2

    <>與!= –

    1

    我認爲myCheck可能是null,由於null <> something是不正確的行不會被更新。試試這個:

    UPDATE `mytable` set SET myCheck='your_value' 
    WHERE my_id = 'your_id' AND ((myCheck <> 'your_value') OR myCheck is null) 
    
    +0

    相同否,再次更新行 –

    +0

    如果不是這樣你在找什麼,我想你正在尋找一個INSERT INTO mytable VALUES(your_values)查詢,而不是UPDATE查詢...... – fthiella

    相關問題