0

行が異なる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,3and $myId = 4) で新しい行を作成する必要がありますmy_id 4

多分私は何か違うものを使わなければなりませんUPDATEか?

何か案は?

4

3 に答える 3

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) 
于 2012-11-14T14:11:56.070 に答える
0

「!=」の代わりに「<>」を使用してみてください

于 2012-11-14T13:59:30.443 に答える
0

わかりました、私は問題が何であるかを理解しました:)

myCheck 行は varchar(32) で、$myCheck には 35 個のシンボルがあります...常に

1111111111111111111111111111111 =! 111111111111111111111111111111111

今 myCheck 行は varchar(64) で、すべて正常に動作します

于 2012-11-14T15:07:28.487 に答える