gpt4 book ai didi

mysql - SQL 仅替换单个列中的字符。乔·博客 至 乔·博客

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

我想 id 以此开头;

UPDATE wp_users
SET Name = REPLACE(Name, '.',' ')

但后来我意识到我无法指定我想要影响的唯一一列,即 display_name 列,首先我需要替换“.”带有“”(空格),那么我想用 A 替换 a,或者假设有很多重复的 SQL,将每个单词的第一个字母大写。

我正在使用 MySQL 和 wordpress

摘要:当前数据:

**display_name**
joe.bloggs
sally.sue
timmy.turner

我需要让它成为:

**display_name**
Joe Bloggs
Sally Sue
Timmy Turner

最佳答案

Mysql 在这些方面确实很糟糕。我使用子字符串索引、左、右和一些串联来进行以下操作。它看起来有点丑,但很有效。它不适用于像 van.der.sar 这样的名称

SELECT CONCAT_WS(' ',
CONCAT(
UCASE(LEFT(SUBSTRING_INDEX('john.doe','.',1),1)),
RIGHT(SUBSTRING_INDEX('john.doe','.',1),length(SUBSTRING_INDEX('john.doe','.',1))-1)
),
CONCAT(
UCASE(LEFT(SUBSTRING_INDEX('john.doe','.',-1),1)),
RIGHT(SUBSTRING_INDEX('john.doe','.',-1),length(SUBSTRING_INDEX('john.doe','.',-1))-1)
)
)

所以你的更新脚本应该如下所示

Update wp_users set name = CONCAT_WS(' ',
CONCAT(
UCASE(LEFT(SUBSTRING_INDEX(name,'.',1),1)),
RIGHT(SUBSTRING_INDEX(name,'.',1),length(SUBSTRING_INDEX(name,'.',1))-1)
),
CONCAT(
UCASE(LEFT(SUBSTRING_INDEX(name,'.',-1),1)),
RIGHT(SUBSTRING_INDEX(name,'.',-1),length(SUBSTRING_INDEX(name,'.',-1))-1)
)
)

关于mysql - SQL 仅替换单个列中的字符。乔·博客 至 乔·博客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42294373/

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