我有下面的sql查询需要修复,以修剪选择的任何空白(开始和结束)。我还需要它从firstname列中删除“lastname”部分:
UPDATE customer_address_entity
SET lastname = RIGHT(firstname,LENGTH(firstname)-LOCATE(' ',firstname))
WHERE lastname = ''
例如,如果“firstname”列中有“jo de blog”并且“lastname”列为空,我希望“firstname”列包含“jo”,而“lastname”列包含“de blog”
2条答案
按热度按时间bxpogfeg1#
我可以这么说。
当名字有两个姓氏时,就用最后两个姓氏;当名字有一个姓氏时,也就用最后两个姓氏;名字中的字数越来越多。你需要一个更复杂的算法来找到正确的索引
db<>在这里摆弄
r6l8ljro2#
这有点棘手,因为如果字符串以空格开头,表达式将不会产生预期的结果。
我会用:
这基本上是从删除字符串的前导和尾随空格开始的,然后选择字符串中第一个空格之后的所有内容。
在你的
update
声明:如果名字和姓氏之间可能有多个空格,则可以
trim()
结果字符串也是: