Заглавная буква только в имени клиента США - PullRequest
0 голосов
/ 11 июля 2019

Требуется запрос MySQL для обновления клиента, первая буква имени - заглавные, а остальные буквы - строчные.

В случаях, когда Фамилия начинается со следующего: (Фитц, Мак, Мак и О '), мы должны использовать заглавную букву:

Пример: Макдональд, Макинтайр, О'Нил и др.

SELECT CONCAT(UCASE(SUBSTRING(field, 1, 1)),LCASE(SUBSTRING(field, 2))) 
FROM table_name WHERE field REGEXP BINARY '^[A-Z]+$';

Я ожидаю, что выводом "Макдональд, Макинтайр, О'Нил" будет "Макдональд, Макинтайр, О'Нил"

1 Ответ

2 голосов
/ 11 июля 2019

Чтобы выполнить преобразование фамилии в MySQL, вам нужно сделать что-то вроде этого.

ПРИМЕЧАНИЕ: это просто обработка сценария 'macdonald => MacDonald'.

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; 

Просто добавьте больше выражений «когда» для других случаев (или особых случаев)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...