Uhm.., non potresti usare la funzione di mySql che effettua il substring dando campo, posizione iniziale e posizione finale?
Leggendo la documentazione è SUBSTRING($stringa,$pos_iniziale,$pos_finale) . Dovrai giocare un po' con padding, concatenazione ed eventualmente casting. Mi sono trovato a farlo per SQL Server e Postgre ma non dovrebbe essere un problema per MySQL
EDIT: giusto, mySql è quella bestia stranache non ha un carattere per concatenare stringhe. Dovrai usare diversi CONCAT annidati per avere qualcosa di utilizzabile, oppure ti scrivi una piccola FUNCTION o STORED PROCEDURE per rendere il codice più leggibile