2016-07-13 14 views
-2

後、私はは、ユーザーの電子メールを持って言うことができます私のテーブルにEMAILようという名前のカラムがあります。更新列の値のみ@記号

[email protected] 
[email protected] 

を、要件は、電子メールの唯一のドメイン部分を更新することですのユーザーだからEmail@符号の後の列の値を更新する必要があります。上記のデータについては

、ユーザーの電子メールは、更新後にこの方法のようになります。

[email protected] 
[email protected] 

答えて

2

あなたがGmailのドメインを持っているすべての電子メールアドレスを更新したいと仮定すると、あなたはWHEREなしUPDATE文を使用することができます句:

UPDATE yourTable 
SET EMAIL = LEFT(EMAIL, CHARINDEX('@', EMAIL)-1) + '@' + 'gmail.com' 

これは、のように書くこともできます。

UPDATE yourTable 
SET EMAIL = LEFT(EMAIL, CHARINDEX('@', EMAIL)) + 'gmail.com' 
+0

感謝バディ。それは私のために働いた。 – mmushtaq

2

与えられたサンプルデータとSUBSTRING

UPDATE TableName SET Email = SUBSTRING(Email, 1, CHARINDEX('@', Email)) + 'gmail.com' 

実行して別の方法:

DECLARE @Employee TABLE (Id INT, Email VARCHAR(100)); 

INSERT INTO @Employee (Id, Email) VALUES 
(1, '[email protected]'), (2, '[email protected]'); 

UPDATE @Employee SET Email = SUBSTRING(Email, 1, CHARINDEX('@', Email)) + 'gmail.com' 

--SELECT * FROM @Employee 
+0

'@'記号の前にすべての文字を削除しました。 – mmushtaq

+0

@ user55:[fiddler](http://rextester.com/WQLVDT91426)でも動作しています。 – Arulkumar

+0

私の場合、間違った結果が出ました。私はこのクエリを実行している間、私はいくつかの間違いをしたと思う。とにかくあなたの懸念のためにバディに感謝します。 – mmushtaq

関連する問題