gpt4 book ai didi

sql - 如何替换SQL字段值

转载 作者:行者123 更新时间:2023-12-03 12:09:00 24 4
gpt4 key购买 nike

我真的不知道该怎么办,我对SQL有点陌生...在我的情况下应该使用子字符串还是替换

我的数据库中有一个名为email的文件,现在我想将所有以email.com结尾的电子邮件编辑为email.org。我该怎么办?

最佳答案

这取决于您需要做什么。您可以使用 replace ,因为您要替换该值:

select replace(email, '.com', '.org')
from yourtable

然后使用新的结尾对表进行 UPDATE,然后使用:
update yourtable
set email = replace(email, '.com', '.org')

您还可以通过检查电子邮件值的后4个字符来对此进行扩展:
update yourtable
set email = replace(email, '.com', '.org')
where right(email, 4) = '.com'

但是, replace()的问题在于 .com可以在电子邮件的其他位置出现,而不仅仅是最后一个。因此,您可能想通过以下方式使用 substring() :
update yourtable
set email = substring(email, 1, len(email) -4)+'.org'
where right(email, 4) = '.com';

参见 SQL Fiddle with Demo

使用 substring()将返回电子邮件值的开头,而不包含最终的 .com,然后将 .org连接到末尾。这样可以防止在字符串的其他位置替换 .com

或者,您可以使用 stuff() ,它允许您同时删除和插入:
update yourtable
set email = stuff(email, len(email) - 3, 4, '.org')
where right(email, 4) = '.com';

这将删除最后一个字符之前的第三个字符的位置(这是最后 .com的起始位置)的4个字符,并插入 .org

有关此方法,也请参见 SQL Fiddle with Demo

关于sql - 如何替换SQL字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14686204/

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