私は次のようにして、blogをフォローしようとしています。UPDATE、IF、INSERT INTOステートメントを使用して、データを2回も渡さないことを確認しています。MySQLのUPDATE、IF、INSERT INTOステートメント
これはPHP用ですのでご注意ください。
$query = "UPDATE
" . $this->table_name2 . "
SET
batch = :batch,
created = :created
WHERE
id = :id
IF row_count() = 0
INSERT INTO " . $this->table_name2 . "
SET
id=:id,
batch=:batch,
created=:created";
を次のように私が持っている文です。しかし、私の戻り値は常にバックとして偽来て、問題がどこにあるか私にはわかりません。
私は文の最初の半分をしようとした場合、それは情報を更新します。
$query = "UPDATE
" . $this->table_name2 . "
SET
batch = :batch,
created = :created
WHERE
id = :id
そして、私は文の後半をしようとした場合、それは情報を挿入します。
INSERT INTO " . $this->table_name2 . "
SET
id=:id,
batch=:batch,
created=:created";
私はしないでくださいこれまでの検索の後で助けを見つけると、何とか私のIFステートメントが正しくないかもしれないと感じますが、ドキュメント内のIF row_count() = 0
に関する情報も取得しません。
SQLステートメントの一部としてではなく、ストアドプロシージャでのみ使用できる場合は、 – JochenJung
@ JochenJung O ok、私はそれを学ばなければならないことがあります。あなたが気にしないなら、私が使っている代替声明はどれだけ速いでしょうか? –
insert文の重複キー更新版を探している可能性があります。 –