MYSQL Update wenn leer ansonsten insert
bearbeitet von TS
 TS
    Hello,    
> Hast du eine bessere Idee wie ich das aufbauen könnte?
Noch eine andere (NICHT bessere!) Lösung.  
Schreib alle Namen in ein Feld, mit Komma getrennt. Dann darf im Namen selber kein Komma enthalten sein!  
Dann kannst Du mit [find_in_set($neuerName, Spaltenname)](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set) prüfen, ob der Name schon drinsteht und ihn nur dann mittels Update hinzufügen, wenn das NICHT der fall ist.  
~~~ sql
update table 
set spalte = concat (spalte, ',', neuerName)
where id=$id 
  and find_in_set($neuerName, Spalte) <> 0`
~~~
Und dann wieder die affected_rows prüfen. Falls die !== 1 sind, das Insert durchführen.  
Das bleibt aber trotzdem in mehrfacher Hinsicht eine Schmuddellösung. Diese würde aber prüfen, ob der Name schon drinsteht. Sie würde aber (noch) nicht prüfen, _wieviele_ Einträge das Set schon hat.  
  
Liebe Grüße  
Tom S.   
-- 
 Es gibt nichts Gutes, außer man tut es   
 Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.  
 nicht angemeldet
 nicht angemeldet