gpt4 book ai didi

mysql - 将名称拆分为名字和姓氏,然后插入现有的名字列和姓氏列 sql

转载 作者:行者123 更新时间:2023-11-29 06:48:18 26 4
gpt4 key购买 nike

我有一个表,其中有一列名为 CustomerName,其中包含名字、中间名首字母和姓氏。有些名字可能没有中间名首字母。在同一个表中,我有 3 个名为 firstNamemiddleNameLastName 的列,其中填充了 None 值。我需要拆分 CustomerName 列并将它们放入相应的列中。我该如何在 mysql 中做到这一点?我尝试了以下但出现错误:

UPDATE xcust SET
LastName = SUBSTRING_INDEX(trim(CustomerName),' ',-1)
case
when LENGTH(trim(CustomerName)) - LENGTH(REPLACE(trim(CustomerName), ' ',
'')) = 1 then null
else MiddleName = SUBSTRING_INDEX(SUBSTRING_INDEX(trim(CustomerName),'
',2),' ',-1)
end
FirstName = SUBSTRING_INDEX(trim(CustomerName),' ',1)
where CustomerName = 'JAMES G STAHL'"""

我收到的错误是:

ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'case \nwhen LENGTH(trim(CustomerName)) - LENGTH(REPLACE(trim(CustomerName), ' ', ' at line 3")

我使用 pymysql 来运行查询。任何帮助,将不胜感激。

最佳答案

未经测试,但乍一看您正在设置的不同值之间缺少逗号,并且需要在 case 语句之外使用 MiddleName。

UPDATE xcust SET
LastName = SUBSTRING_INDEX(trim(CustomerName),' ',-1),
MiddleName =
case when LENGTH(trim(CustomerName)) - LENGTH(REPLACE(trim(CustomerName), ' ', '')) = 1 then
null
else
SUBSTRING_INDEX(SUBSTRING_INDEX(trim(CustomerName),' ',2),' ',-1)
end,
FirstName = SUBSTRING_INDEX(trim(CustomerName),' ',1)
where CustomerName = 'JAMES G STAHL'

关于mysql - 将名称拆分为名字和姓氏,然后插入现有的名字列和姓氏列 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com