如何仅更新sql WHERE有不同的行

时间:2012-11-14 13:56:02

标签: php mysql sql sql-update

好的我只是在UPDATE行不同时尝试myCheck我的表格列

$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不同的东西?

有什么想法吗?

3 个答案:

答案 0 :(得分: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) 

答案 1 :(得分:0)

尝试使用'&lt;&gt;'而不是'!='

答案 2 :(得分:0)

好的,我明白了问题所在:)

myCheck行是varchar(32),$ myCheck有35个符号......所以总是

11111111111111111111111111111111 =! 11111111111111111111111111111111111

现在myCheck行是varchar(64),一切正常