Need a MySQL query to update the customer first letter of the name is Capitalized and the remaining letters are lower case.
In cases where the Last name begins with the following: (Fitz, Mac, Mc, and O’) we should capitalize the following letter:
Example: McDonald, MacIntyre, O’Neal, etc.
SELECT CONCAT(UCASE(SUBSTRING(field, 1, 1)),LCASE(SUBSTRING(field, 2))) FROM table_name WHERE field REGEXP BINARY '^[A-Z]+$';
I expect the output of to “mcdonald, macintyre, o’neal” be “McDonald, MacIntyre, O’Neal”
Advertisement
Answer
To do last name transformation in MySQL you would need to do something like this.
NOTE: this is merely handling the ‘macdonald => MacDonald’ scenario.
SELECT CASE WHEN INSTR(LCASE(Field), "mac") == 1 THEN CONCAT( "Mac", UCASE(SUBSTRING(Field,4,1)), LCASE(SUBSTRING(Field,5)) ) ELSE CONCAT(UCASE(SUBSTRING(Field,1,1)), LCASE(SUBSTRING(Field,2))) END AS surname FROM table_name;
Just add more ‘when’ statements for the other cases (or special cases)