REPLACE() ফাংশন দিয়ে কলামের নির্দিষ্ট মান বদলানো
MySQL-এ UPDATE ... SET col = REPLACE(col, old_val, new_val) ব্যবহার করে কলামের নির্দিষ্ট মান (old_val) কে নতুন মান (new_val) দিয়ে রিপ্লেস করা যায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100), CountryName VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('John','AUS'), ('Bob','AUS'), ('Chris','US'), ('David','UK'), ('Adam','US');
আপডেটের আগে
+-----------+-------------+ | FirstName | CountryName | +-----------+-------------+ | John | AUS | | Bob | AUS | | Chris | US | | David | UK | | Adam | US | +-----------+-------------+
AUS কে US বদলানো
mysql> UPDATE DemoTable SET CountryName = REPLACE(CountryName, 'AUS', 'US'); Query OK, 2 rows affected (0.17 sec)
আপডেটের পর
+-----------+-------------+ | FirstName | CountryName | +-----------+-------------+ | John | US | | Bob | US | | Chris | US | | David | UK | | Adam | US | +-----------+-------------+
ব্যাখ্যা
REPLACE(CountryName, 'AUS', 'US')— CountryName-এ 'AUS' পাওয়া যাসব জায়গায় 'US' বসায়।WHEREক্লজ না দিলে সব রো চেক করে (যে রোতে 'AUS' নেই, সেখানে কোনো পরিবর্তন হয় না)।Rows matched: 5, Changed: 2— ৫ রো চেক হয়েছে, ২ রো পরিবর্তিত হয়েছে।
সতর্কতা
REPLACEসাবস্ট্রিং ম্যাচ করে (যেমন 'AUS' → 'AUSTRIA'-ও ম্যাচ করবে)।- এক্স্যাক্ট ম্যাচ চাইলে:
UPDATE ... SET CountryName = 'US' WHERE CountryName = 'AUS'। - কেস-সেনসিটিভিটি collation-এ নির্ভর করে।