Mysql: INSERT + Update
Ajax
- datenbank
0 Pia0 Vinzenz Mai
Hallo,
gibt es einen Syntax, bei dem -wenn nötig- eine neue Zeile erzeugt wird. Existiert schon ein Eintrag, bei den die mit einem Volltextindex versehenen Felder übereinstimmen, soll der Eintrag NICHT gelöscht und ein neuer erzeugt werden, sondern der alte Eintrag soll aktualisiert werden.
Replace löscht leider den alten und erstellt einen neuen.
Gibt es eine eigene Anweisung dafür, die eben nicht ersetzt, sondern abgleicht, sofern schon etwas (fast) gleiches existiert?
DANKE
Hi,
die Lösung steckt schon in deiner Frage.
$sql = "update table1 set feld4='neues' where feld4 = 'hallo Welt';";
Wenn das nicht geht, durch eine if abfrage zu insert "ändern". Fertig.
carpe diem
Pia
Hi Pia,
"In Einem" Query geht es nicht, oder?
$sql = "update table1 set feld4='neues' where feld4 = 'hallo Welt';";
Wenn das nicht geht, durch eine if abfrage zu insert "ändern". Fertig.
Hi,
"In Einem" Query geht es nicht, oder?
hmmm, weiss nicht habe das bisher immer in php gelöst,
aber wenn ich das hier sehe:
http://dev.mysql.com/doc/refman/5.1/de/if-statement.html
müsste es vielleicht gehen.
carpe diem
Pia
Hallo
gibt es einen Syntax, bei dem -wenn nötig- eine neue Zeile erzeugt wird. Existiert schon ein Eintrag, bei den die mit einem Volltextindex versehenen Felder übereinstimmen, soll der Eintrag NICHT gelöscht und ein neuer erzeugt werden, sondern der alte Eintrag soll aktualisiert werden.
nein, eine solche Syntax gibt es nicht.
Gibt es eine eigene Anweisung dafür, die eben nicht ersetzt, sondern abgleicht, sofern schon etwas (fast) gleiches existiert?
Es gibt nur ON DUPLICATE KEY UPDATE, diese Syntax benötigt jedoch mindestens einen UNIQUE KEY.
Freundliche Grüße
Vinzenz