Flo: REPLACE und REGEX in mysql verbinden

Beitrag lesen

MySQL 7.4? Die MySQL Doku nennt die Versionen 5.7 und 8.0. Dazwischen gibt's was?

Wo schau ich das genau nach? Ich habe in der phpinfo() nach mysql-Einträgen gesucht und stieß immer wieder auf 7.4

Aber wenn Du schon nach Regexp fragst, dann verwende doch eine.

DELETE FROM table
WHERE  spalte RLIKE 'In diesem Spiel wurden [0-9]+ Tore erzielt'

(RLIKE oder REGEXP - die sind synonym).

Funktioniert das auch in Kombination mit REPLACE

Du hättest dann allerdings die Frage zu beantworten, wie Du deine zu löschenden Sätze findest. Für mich sieht das so aus, als wären Spiele mit diesem Eintrag solche, die beendet sind. Aber das kann natürlich auch ein Falscheindruck sein. Die Information, die Du aus der Existenz von 'In diesem Spiel wurden [0-9]+ Tore erzielt' ziehst, gehört aller Wahrscheinlichkeit nach in eine separate Spalte der Tabelle. Entweder ein Spielstatus, oder ein "erledigt" Flag.

Steht in einer seperaten Spalte. Einer Art "Bemerkungen-Spalte".

Für mich sieht das so aus, als wären Spiele mit diesem Eintrag solche, die beendet sind.

Du hättest Detektiv werden sollen 😀 Stimmt zwar nicht ganz, aber kommt der Sache wirklich schon sehr nah. Vermutlich hättest Du den Nagel auch auf den Kopf getroffen, wenn ich mein Originalbeispiel genommen hätte.

Es geht schlicht darum, dass eine Tabelle in einer Boolean-Spalte upgedatet wird und im Fall 0 möchte ich einen Begleittext in der Spalte Bemerkungen ablegen (in der ggf. schon ein anderer String steht), der im Fall 1 wieder herausgelöscht werden soll (der restliche String soll aber bleiben). Dieser Begleitext ist abhängig von der Anzahl der kommaseparierten Strings in der Spalte "Tore".

Liest sich zwar nach "von hinten durchs Knie... usw.", ist aber für ein wenig genutztes Feature ein netter und schneller Zusatz. Und zudem käme man auch ohne diesen Zusatz aus, daher möchte ich nicht zuviel hierfür ein-/umbauen.

Flo