不带 CAP_FIRST 的列的多个单词的首字母大写

Capitalize first letter of multiple words of a column without CAP_FIRST

我有一个table如下

    Name
    firstname lastname
    FirstName Lastname
    firstName Lastname
    FirstName lastname

我试图在所有 4 种情况下将 firstnamelastname 的每个字母大写为 Firstname Lastname

对于不使用 CAP_FIRST 函数的查询有什么建议吗?我可以使用正则表达式吗?

这是一个有效的查询:

SELECT 
CONCAT(
    UPPER(SUBSTRING(Name,1,1)),
    LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
    UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
    LOWER(SUBSTRING(Name,Locate(' ', Name)+2)))
FROM NameTable;

这是结果:

Name
Firstname Lastname
Firstname Lastname
Firstname Lastname
Firstname Lastname

要更新列使用,

UPDATE NameTable 
SET NameTable.Name = CONCAT(
    UPPER(SUBSTRING(Name,1,1)),
    LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
    UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
    LOWER(SUBSTRING(Name,Locate(' ', Name)+2)));

此致