Wie ich das locker in zwei Querys bekomme, weiß ich.
Ich wollte es aber elegant in einem Query lösen.
Ich möchte zuerst ein Datensatz in die Datenbank schreiben.
Beim zweiten Aufruf der Seite ist dieser Datensatz ja schon vorhanden. Deshalb soll dieser geupdatet werden. Die alten Daten werden aber mit(!) übernommen.
Beispiel:
Das erste Mal:
„IP Adresse: 127.0.0.1“
„String: irgendein Text“
gespeichert.
Das zweite Mal:
IP Adresse schon vorhanden,
also UPDATE: IP bleibt ja gleich, aber String dann so:
INSERT INTO bla bla (String) VALUES („Neuer Text \n (SELECT string [alter text])“)
Sodass also, wenn die IP Adresse schon vorhanden ist, der neue String ganz oben gespeichert wird und der alte Datensatz per Umbruch darunter. Scheinen 2-3 Befehle auf einmal zu sein.
Insert, Update, if exists, if not exists, etc.
REPLACE INTO wäre das was Du suchst. Mach aus der Spalte noch einen Primärschlüssel und ersetze in deinem INSERT-Statement das INSERT durch REPLACE. Siehe auch MySQL-Manual.
Danke. IP ist bei mir Unique, UserAgent nicht.
Ich orientiere mich an IP und bei jedem Seitenabruf, wird der neue UserAgent (falls vorhanden), mit registriert, ohne die alte zu überschreiben.