কম্পিউটার টিউটোরিয়াল

MySQL-এ UPDATE + REPLACE() দিয়ে নির্দিষ্ট কলাম মান পরিবর্তন করা


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-এ নির্ভর করে।
  1. MySQL-এ IFNULL() ব্যবহার করে NULL মানকে নির্দিষ্ট ভ্যালু ('Robert') দিয়ে রিপ্লেস করা

  2. MySQL-এ SELECT ... INTO @variable ব্যবহার করে নির্দিষ্ট রো থেকে একক মান বের করা

  3. MySQL-এ VARCHAR কলাম থেকে সর্বোচ্চ সংখ্যাগত মান বের করা

  4. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা