仅在美国客户名中大写首字母

时间:2019-07-11 13:27:23

标签: mysql sql

需要一个MySQL查询来更新客户名称的第一个字母为大写,其余字母为小写。

在姓氏以以下字母开头的情况下(Fitz,Mac,Mc和O’),我们应大写以下字母:

例如:麦当劳,麦金太尔,奥尼尔等

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

我希望“麦当劳,麦金太尔,奥尼尔”的输出为“麦当劳,麦金太尔,奥尼尔”

1 个答案:

答案 0 :(得分:2)

要在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; 

只需为其他情况(或特殊情况)添加更多“何时”声明