Without any adieu what-so-ever, below is a MySQL implementation of PHP’s ucfirst function which capitalizes the first letter of each word in a string.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | DELIMITER $$ CREATE FUNCTION CAP_FIRST (INPUT VARCHAR(255)) RETURNS VARCHAR(255) DETERMINISTIC BEGIN DECLARE len INT; DECLARE i INT; SET len = CHAR_LENGTH(INPUT); SET INPUT = LOWER(INPUT); SET i = 0; WHILE (i < len) DO IF (MID(INPUT,i,1) = ' ' OR i = 0) THEN IF (i < len) THEN SET INPUT = CONCAT( LEFT(INPUT,i), UPPER(MID(INPUT,i + 1,1)), RIGHT(INPUT,len - i - 1) ); END IF; END IF; SET i = i + 1; END WHILE; RETURN INPUT; END$$ DELIMITER ; |
Use it like so:
1 | SELECT CAP_FIRST('my string of words'); |
and you should get:
My String Of Words |
All credit and many thanks for this function to Joezack.