我有一个mysql数据库表,其中有一个电子邮件列,最多可以包含两个以分号分隔的电子邮件。 我想要实现的是将电子邮件字段中的第二个电子邮件地址写入另一个列email2 这是我迄今为止没有成功的尝试:
UPDATE user AS u
SET email2 = (SELECT SUBSTRING_INDEX(email, ';', -1)
FROM user
WHERE user.id=u.id)
WHERE username LIKE "%;%"
在搜索这个问题时,有一些解决方案在子查询中没有找到第二个子查询,但没有一个真正符合我的问题。
如果有人有解决方案,请发布。我被困在了2个小时。
非常感谢。
答案 0 :(得分:5)
无需让生活复杂化:
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 '%;%';