Originariamente inviato da neida
Grazie skidx, la soluzione che mi hai proposto è perfetta! volevo chiederti un'ultima cosa però, è normale che se cerco di utilizzarla all'interno di un'altra istruzione, così: CONCAT_WS(' ', c.cognome, Iniziali) AS nomeCompleto, mi restituisce: ERROR : 1054 - Unknown column 'Iniziali' in 'field list'?
Nell'elenco dei campi da selezionare non puoi fare riferimento agli alias appena dichiarati (mentre puoi farlo dalla clausola GROUP BY o HAVING per esempio).

Comunque se vuoi concatenare anche il cognome la soluzione è questa:
codice:
SELECT @var1:= IF(LOCATE(' ', 'Abc Def Ghi Lmn', 2) + 1 > 2, LOCATE(' ', 'Abc Def Ghi Lmn', 2) + 1, NULL),
@var2:= IF(LOCATE(' ', 'Abc Def Ghi Lmn', @var1) + 1 > @var1, LOCATE(' ', 'Abc Def Ghi Lmn', @var1) + 1, NULL),
@var3:= IF(LOCATE(' ', 'Abc Def Ghi Lmn', @var2) + 1 > @var2, LOCATE(' ', 'Abc Def Ghi Lmn', @var2) + 1, NULL),
@var4:= IF(LOCATE(' ', 'Abc Def Ghi Lmn', @var3) + 1 > @var3, LOCATE(' ', 'Abc Def Ghi Lmn', @var3) + 1, NULL),
CONCAT_WS(' ', CONCAT(CONCAT_WS('. ',
SUBSTRING('Abc Def Ghi Lmn', 1, 1),
SUBSTRING('Abc Def Ghi Lmn', @var1, 1),
SUBSTRING('Abc Def Ghi Lmn', @var2, 1),
SUBSTRING('Abc Def Ghi Lmn', @var3, 1),
SUBSTRING('Abc Def Ghi Lmn', @var4, 1)), '.'), Cognome)
Dove appunto Cognome non è un alias ma il nome effettivo del campo.