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

MySQL-এ REPLACE দিয়ে শুধু শতাংশ চিহ্ন (%) মুছে ফেলা

MySQL-এ REPLACE() ফাংশন ব্যবহার করে কলামের মান থেকে শুধু নির্দিষ্ট ক্যারেক্টার (যেমন % চিহ্ন) মুছে ফেলা যায়।

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable828( 
    CustomerName varchar(100), 
    InterestRate varchar(100) 
); 
Query OK, 0 rows affected (0.50 sec)
mysql> insert into DemoTable828 values('Chris','10%'); 
Query OK, 1 row affected (0.60 sec) 
mysql> insert into DemoTable828 values('Robert','11.5%'); 
Query OK, 1 row affected (0.11 sec) 
mysql> insert into DemoTable828 values('David','15.90%'); 
Query OK, 1 row affected (0.22 sec) 
mysql> insert into DemoTable828 values('Bob','20%'); 
Query OK, 1 row affected (0.16 sec)

সকল রেকর্ড দেখানো

mysql> select * from DemoTable828;
+--------------+--------------+
| CustomerName | InterestRate |
+--------------+--------------+
| Chris        | 10%          |
| Robert       | 11.5%        |
| David        | 15.90%       |
| Bob          | 20%          |
+--------------+--------------+
4 rows in set (0.00 sec)

শতাংশ চিহ্ন (%) মুছে ফেলা (UPDATE)

mysql> update DemoTable828 set InterestRate=replace(InterestRate,'%',''); 
Query OK, 4 rows affected (0.18 sec) 
Rows matched: 4  Changed: 4  Warnings: 0

আপডেট後の রেকর্ড দেখানো

mysql> select * from DemoTable828;
+--------------+--------------+
| CustomerName | InterestRate |
+--------------+--------------+
| Chris        | 10           |
| Robert       | 11.5         |
| David        | 15.90        |
| Bob          | 20           |
+--------------+--------------+
4 rows in set (0.00 sec)

ব্যাখ্যা

  • REPLACE(InterestRate, '%', '') - '%' খুঁজে খালি স্ট্রিং '' দিয়ে রিপ্লেস করে
  • UPDATE - টেবিলের ডেটা স্থায়ীভাবে বদলায়
  • Rows matched: 4 Changed: 4 - ৪ রো মিলল, ৪ রো বদলায়

SELECT-এ দেখানোর জন্য (ডেটা বদলায় না)

SELECT CustomerName, REPLACE(InterestRate, '%', '') as CleanRate FROM DemoTable828;

একাধিক ক্যারেক্টার মুছে ফেলা (নেস্টেড REPLACE)

REPLACE(REPLACE(REPLACE(col, '%', ''), ',', ''), '$', '')

সতর্কতা

  • UPDATE غيرقابل বাতিল (Rollback করা যায় না অটো-কমিট মোডে)
  • প্রথমে SELECT দিয়ে প্রিভিউ দেখুন
  • ব্যাকআপ নিন বড় আপডেটের আগে
  • সংখ্যা কলামে কনভার্ট করলে CAST(REPLACE(...) AS DECIMAL(10,2)) ব্যবহার করুন

দ্রষ্টব্য: পারসেন্টেজ রেটের জন্য DECIMAL(5,2) টাইপ ব্যবহার করা ভালো (১৫.৯০%), স্ট্রিংয়ে % রাখা টেকনিক্যাল ডেটে সমস্যা সৃষ্টি করে।

  1. MySQL-এ INSERT INTO SELECT দিয়ে অন্য টেবিল থেকে ডেটা কপি করা

  2. MySQL টেবিল থেকে ইন্ডেক্স সরানো

  3. MySQL-এ EXISTS সাবকোয়েরি ব্যবহার করে অন্য টেবিলের সাথে ম্যাচ করা রো সিলেক্ট করা

  4. MySQL-এ নির্দিষ্ট কলাম থেকে শুধু 'NO' মান সংখ্যা বের করা