繁体   English   中英

用subselect更新MySQL

[英]MySql update with subselect

我有一个mysql数据库表,其中有一个电子邮件列,其中可以包含最多两个用分号分隔的电子邮件。 我要实现的是将电子邮件字段中的第二个电子邮件地址写入另一列email2中。

UPDATE user AS u
SET email2 = (SELECT SUBSTRING_INDEX(email, ';', -1)
              FROM user
              WHERE user.id=u.id)
WHERE username LIKE "%;%"

搜索此问题时,有一些解决方案在子查询中取消第二个子查询的运行,但没有一个真正符合我的问题。

如果有人有解决方案,请发布。 我被卡了至少2个小时。

非常感谢你。

无需使您的生活复杂化:

UPDATE user 
SET email2 = SUBSTRING_INDEX(email, ';', -1) 
WHERE username LIKE '%;%';

并清理同一查询中的第一列

UPDATE user 
SET 
  email2 = SUBSTRING_INDEX(email, ';', -1),
  email = SUBSTRING_INDEX(email, ';', 1),
WHERE username LIKE '%;%';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM