SQL如何在每行email字段值末尾追加固定邮箱地址
SQL实现多行邮箱字段末尾追加固定邮箱方案
核心逻辑为对存储邮箱的字段做字符串拼接操作,在原有字段值末尾追加;加固定邮箱即可,不同主流数据库的实现如下:
- MySQL
仅查询验证结果:
直接更新表内数据(可先执行查询确认结果无误后再执行更新):SELECT CONCAT(你的邮箱字段名, ';newemail@hotmail.com') AS 处理后邮箱 FROM 你的表名;-- 兼容字段为空的场景,避免空值拼接后开头出现多余分号 UPDATE 你的表名 SET 你的邮箱字段名 = IF(你的邮箱字段名 IS NULL OR 你的邮箱字段名 = '', 'newemail@hotmail.com', CONCAT(你的邮箱字段名, ';newemail@hotmail.com')); - PostgreSQL
查询验证:
数据更新:SELECT 你的邮箱字段名 || ';newemail@hotmail.com' AS 处理后邮箱 FROM 你的表名;UPDATE 你的表名 SET 你的邮箱字段名 = COALESCE(NULLIF(你的邮箱字段名, '') || ';', '') || 'newemail@hotmail.com'; - SQL Server
查询验证:
数据更新:SELECT 你的邮箱字段名 + ';newemail@hotmail.com' AS 处理后邮箱 FROM 你的表名;UPDATE 你的表名 SET 你的邮箱字段名 = ISNULL(NULLIF(你的邮箱字段名, '') + ';', '') + 'newemail@hotmail.com'; - Oracle
查询验证:
数据更新:SELECT 你的邮箱字段名 || ';newemail@hotmail.com' AS 处理后邮箱 FROM 你的表名;UPDATE 你的表名 SET 你的邮箱字段名 = NVL2(你的邮箱字段名, 你的邮箱字段名 || ';newemail@hotmail.com', 'newemail@hotmail.com');
注意事项
如果原有数据部分行末尾存在多余分号,可以先修剪末尾分号再拼接,避免出现连续分号的异常情况,以MySQL为例:
UPDATE 你的表名 SET 你的邮箱字段名 = IF(你的邮箱字段名 IS NULL OR 你的邮箱字段名 = '', 'newemail@hotmail.com', CONCAT(TRIM(TRAILING ';' FROM 你的邮箱字段名), ';newemail@hotmail.com'));
内容的提问来源于stack exchange,提问作者fd2812
相关产品推荐
相关产品推荐

