TS: MYSQL Update wenn leer ansonsten insert

Beitrag lesen

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) prüfen, ob der Name schon drinsteht und ihn nur dann mittels Update hinzufügen, wenn das NICHT der fall ist.

update table 
set spalte = TRIM(BOTH ',' FROM 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.