0

セミコロンで区切られた最大2つの電子メールを含むことができる電子メール列があるmysqlデータベーステーブルがあります。私が達成したいのは、電子メールフィールドの2番目の電子メールアドレスを別の列email2に書き込むことです。これは私がこれまで試したものですが、成功しませんでした。

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

この問題を検索するとき、サブクエリ内の2番目のサブクエリをアンシングするいくつかの解決策がありましたが、それらのどれも私の問題に実際には一致しませんでした。

誰かが解決策を持っているなら、それを投稿してください。私は少なくとも2時間立ち往生しています。

どうもありがとうございます。

4

1 に答える 1

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 '%;%';
于 2013-01-28T15:22:20.337 に答える