Tùy thuộc vào những gì bạn cần làm. Bạn có thể sử dụng replace
kể từ khi bạn muốn thay thế các giá trị:
select replace(email, '.com', '.org')
from yourtable
Sau đó, để UPDATE
bảng của bạn với sự kết thúc mới, sau đó bạn sẽ sử dụng:
update yourtable
set email = replace(email, '.com', '.org')
Bạn cũng có thể mở rộng về vấn đề này bằng cách kiểm tra 4 ký tự cuối cùng của giá trị email:
update yourtable
set email = replace(email, '.com', '.org')
where right(email, 4) = '.com'
Tuy nhiên, vấn đề với replace()
là .com
có thể sẽ ở Loca khác tions trong email không chỉ là cuối cùng. Vì vậy, bạn có thể muốn sử dụng substring()
theo cách sau:
update yourtable
set email = substring(email, 1, len(email) -4)+'.org'
where right(email, 4) = '.com';
Xem SQL Fiddle with Demo
Sử dụng substring()
sẽ trở lại với sự khởi đầu của giá trị email, mà không có thức .com
và sau đó bạn nối các .org
đến cùng. Điều này ngăn sự thay thế của .com
ở nơi khác trong chuỗi.
Hoặc bạn có thể sử dụng stuff()
, cho phép bạn thực hiện cả hai xóa và chèn cùng một lúc:
update yourtable
set email = stuff(email, len(email) - 3, 4, '.org')
where right(email, 4) = '.com';
này sẽ xóa 4 ký tự ở vị trí của nhân vật thứ ba trước khi người cuối cùng (đó là vị trí bắt đầu của số .com
cuối cùng) và chèn .org
thay thế.
Xem SQL Fiddle with Demo cho phương pháp này.
Cảm ơn bạn rất nhiều, nó làm việc tốt. Được đánh giá cao – user2039512
@ user2039512 Bạn được chào đón, tôi rất sẵn lòng trợ giúp. Nếu một trong những câu trả lời cho câu hỏi của bạn là hữu ích, thì hãy chắc chắn chấp nhận nó thông qua dấu kiểm ở bên trái của nó. Nó sẽ giúp khách truy cập trong tương lai đến trang web và bạn sẽ nhận được đại diện trang web để chấp nhận. :) – Taryn