Non è così facile. Potresti utilizzare la funzione "LOCATE" per trovare la prima occorrenza di un numero, ma non credo sia utilizzabile per tutti i numeri contemporaneamente (non si può utilizzare con una regexp in pratica).
Altrimenti potevi fare qualcosa del tipo:
codice:SELECT DISTINCT city, LEFT(city, LOCATE(city, '1')) FROM products WHERE city REGEXP '^(milano|roma|barcellona)[0-9]+';