Esta función para mysql tiene el mismo funcionamiento que ucwords de php, o al menos eso pretende xD, espero les sea útil.
DELIMITER ||
DROP FUNCTION IF EXISTS ucwords||
CREATE FUNCTION ucwords(s VARCHAR(255)) RETURNS VARCHAR(255) BEGIN
DECLARE cont INT UNSIGNED DEFAULT 0;
DECLARE flag TINYINT UNSIGNED DEFAULT 1;
DECLARE cadena VARCHAR(255) DEFAULT '';
WHILE(cont <= LENGTH(s)) DO
IF(SUBSTRING(s,cont,1) = ' ') THEN
SET cadena = CONCAT(cadena,' ');
SET cont = cont + 1;
SET flag = 1;
ELSE
SET flag = 0;
END IF;
IF flag = 1 THEN
SET cadena = CONCAT(cadena,UCASE(SUBSTRING(s,cont,1)));
ELSE
SET cadena = CONCAT(cadena,LCASE(SUBSTRING(s,cont,1)));
END IF;
SET cont = cont + 1;
END WHILE;
RETURN LTRIM(cadena);
END;
||
DELIMITER ;
El uso sería el siguiente:
SELECT ucwords("hola mundo"); #->Hola Mundo
En un update:
UPDATE mi_tabla SET mi_campo = ucwords(mi_campo) [WHERE...]
Tomado de: http://www.elden.com.mx/2009/04/02/ucwords-for-mysql/