我真的不知道該怎麼做,我是一個有點新的SQL ...我應該使用字符串或更換我的情況如何更換SQL字段值
我在我的數據庫歸檔所謂的電子郵件,現在我想編輯所有以email.com結尾的電子郵件到email.org。我該怎麼辦?
我真的不知道該怎麼做,我是一個有點新的SQL ...我應該使用字符串或更換我的情況如何更換SQL字段值
我在我的數據庫歸檔所謂的電子郵件,現在我想編輯所有以email.com結尾的電子郵件到email.org。我該怎麼辦?
這取決於你需要做什麼。您可以使用replace
因爲你要替換的值:
select replace(email, '.com', '.org')
from yourtable
然後UPDATE
與新的結局你的表,那麼你可以使用:
update yourtable
set email = replace(email, '.com', '.org')
您也可以擴大此通過檢查電子郵件值的最後4個字符:
update yourtable
set email = replace(email, '.com', '.org')
where right(email, 4) = '.com'
然而,隨着replace()
的問題是.com
可以將在其他LOCA電子郵件中的tions不僅僅是最後一個。所以,你可能想使用substring()
方式如下:
update yourtable
set email = substring(email, 1, len(email) -4)+'.org'
where right(email, 4) = '.com';
使用substring()
將返回電子郵件值的開始,而最終.com
,然後您連接的.org
到底。這可以防止替換字符串中其他地方的.com
。
另外,您可以使用stuff()
,它允許你這樣做既刪除,並在同一時間將:
update yourtable
set email = stuff(email, len(email) - 3, 4, '.org')
where right(email, 4) = '.com';
這將在第三個字符的最後一個前的位置刪除4個字符(這是代替最終的.com
的起始位置)並插入.org
。
你可以只使用REPLACE
:
UPDATE myTable SET emailCol = REPLACE(emailCol, '.com', '.org')`.
但考慮到的電子郵件地址,如[email protected]
將更新爲[email protected]
。
如果您希望更安全一點,則應使用RIGHT
檢查最後4個字符,並手動將.org
附加到SUBSTRING
。請注意使用UPPER
來搜索.com
結尾不區分大小寫。
UPDATE myTable
SET emailCol = SUBSTRING(emailCol, 1, LEN(emailCol)-4) + '.org'
WHERE UPPER(RIGHT(emailCol,4)) = '.COM';
看到它在這工作SQLFiddle。
試試這個查詢它會改變記錄結束。COM
UPDATE tablename SET email = replace(email, '.com', '.org') WHERE email LIKE '%.com';
-1:這將取代電子郵件地址中的任何地方。它會因'john.comrad @ some.company.com'加倍失敗 –
爲了避免含有.com
像[email protected]
到[email protected]
更新的名稱,你可以這樣做:
UPDATE Yourtable
SET Email = LEFT(@Email, LEN(@Email) - 4) + REPLACE(RIGHT(@Email, 4), '.com', '.org')
非常感謝你,它工作得很好。讚賞 – user2039512
@ user2039512不客氣,我很樂意提供幫助。如果其中一個問題的答案是有幫助的,那麼一定要通過它左邊的複選標記來接受它。它將幫助未來的訪問者訪問該網站,並且您將得到網站代表接受。 :) – Taryn