To wydaje się działać:
select left( concat('2Ga4la2009','1'), length(concat('2Ga4la2009','1')) - length(convert(convert(reverse(concat('2Ga4la2009','1')),unsigned),char)))
Concat('myvalue', '1') ma chronić przed liczbami kończącymi się na zerach.
Rewers odwraca go tak, aby numer był z przodu.
Konwersja wewnętrzna zamienia odwrócony ciąg na liczbę, upuszczając końcowe znaki.
Konwersja zewnętrzna zamienia część numeryczną z powrotem na znaki, dzięki czemu można uzyskać długość.
Teraz znasz długość części numerycznej i możesz określić liczbę znaków oryginalnej wartości do odcięcia za pomocą funkcji "left()".
Brzydkie, ale działa. :-)