Ich versuche, die folgenden blog zu folgen und eine UPDATE, IF, INSERT INTO-Anweisung zu verwenden, um zu sehen, dass meine Daten nicht zweimal überschrieben werden.MySQL UPDATE, IF, INSERT INTO-Anweisung
Bitte beachten Sie, dass es für PHP ist.
Die Aussage, dass ich habe, ist wie folgt
$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";
Aber mein Rückgabewert kommt immer wieder als falsch, und ich weiß nicht, wo das Problem ist.
Wenn ich die erste Hälfte der Anweisung versuchen, aktualisiert er die Informationen:
$query = "UPDATE
" . $this->table_name2 . "
SET
batch = :batch,
created = :created
WHERE
id = :id
Und wenn ich die zweite Hälfte der Anweisung versuchen, fügt sie die Informationen:
INSERT INTO " . $this->table_name2 . "
SET
id=:id,
batch=:batch,
created=:created";
ich nicht tun finde nach allot von der Suche bis jetzt Hilfe, und ich fühle, dass irgendwie meine IF-Aussage möglicherweise nicht richtig ist, aber ich bekomme nicht einmal Informationen über die IF row_count() = 0
in den Dokumenten.
Wenn nur in gespeicherten Prozeduren verwendet wird, nicht als Teil von SQL-Anweisungen – JochenJung
@ JochenJung O ok, es ist etwas anderes, das ich dann lernen. Welche alternative Aussage würden Sie vorschlagen, die ich verwende, die am schnellsten sein wird, wenn Sie nichts dagegen haben? –
Sie suchen möglicherweise nach der Schlüsselaktualisierungsversion der Einfügeanweisung. –