Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So entfernen Sie mit SQL Ziffern vom Ende der Zeichenfolge

Das scheint zu funktionieren:

select left( concat('2Ga4la2009','1'), length(concat('2Ga4la2009','1')) - length(convert(convert(reverse(concat('2Ga4la2009','1')),unsigned),char)))

Das concat('myvalue', '1') soll vor Zahlen schützen, die auf 0 enden.

Die Rückseite dreht es um, sodass die Nummer vorne ist.

Die innere Konvertierung wandelt den umgekehrten String in eine Zahl um und lässt die abschließenden Zeichen weg.

Die äußere Konvertierung wandelt den numerischen Teil wieder in Zeichen um, sodass Sie die Länge erhalten können.

Jetzt kennen Sie die Länge des numerischen Teils und können mit der Funktion „left()“ die Anzahl der abzuschneidenden Zeichen des ursprünglichen Werts bestimmen.

Hässlich, aber es funktioniert. :-)