Rolf B: REPLACE und REGEX in mysql verbinden

Beitrag lesen

Hallo Flo,

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

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).

Es scheint, als ob MySQL die Angabe \d für "Ziffer" nicht verstünde. Daher [0-9], was die bekannten ASCII-Ziffern darstellt. [[:digit:]] ginge statt dessen auch.

Und wie ich anderswo schon schrieb: Solche Texte gehören nicht in eine DB, sie gehören in die Anwendung. In die DB gehört nur eine Spalte "Tore" mit dem Wert 9 darin.

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.

Rolf

--
sumpsi - posui - obstruxi