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

MySQL-এ REGEXP দিয়ে UPDATE করা সম্ভব কিনা?

MySQL-এ REGEXP দিয়ে সরাসরি UPDATE করা সম্ভব নয়। এর পরিবর্তে LIKE অপারেটর ব্যবহার করতে হয়। MySQL UPDATE문에 REGEXP সাপোর্ট করে না। LIKE অপারেটরের সিনট্যাক্স নিচে দেওয়া হলো:

UPDATE yourTableName SET yourColumnName= REPLACE(yourColumnName,'yourValue', '' ) WHERE yourColumnName LIKE '%yourValueThatWillReplace)%';

এটি বুঝতে একটি টেবিল তৈরি করা যাক।

mysql> create table Replace_Demo  
    -> (  
    -> Id int NOT NULL AUTO_INCREMENT,  
    -> Value varchar(20),  
    -> PRIMARY KEY(Id)  
    -> ); Query OK, 0 rows affected (0.62 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:

mysql> insert into Replace_Demo(Value) values('221)'); Query OK, 1 row affected (0.22 sec) mysql> insert into Replace_Demo(Value) values('321'); Query OK, 1 row affected (0.24 sec) mysql> insert into Replace_Demo(Value) values('354)'); Query OK, 1 row affected (0.18 sec) mysql> insert into Replace_Demo(Value) values('223)'); Query OK, 1 row affected (0.09 sec) mysql> insert into Replace_Demo(Value) values('446'); Query OK, 1 row affected (0.13 sec)

সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:

mysql> select *from Replace_Demo;

আউটপুট নিচে দেওয়া হলো:

+----+-------+ | Id | Value | +----+-------+ |  1 | 221) | |  2 | 321  | |  3 | 354) | |  4 | 223) | |  5 | 446  | +----+-------+ 5 rows in set (0.00 sec)

REGEXP-র পরিবর্তে LIKE অপারেটর ব্যবহার করে আপডেট করার কোয়েরিটি নিচে দেওয়া হলো:

mysql> update Replace_Demo set Value = REPLACE(Value,'221)', '' )   
    -> WHERE Value like '%221)%'; Query OK, 1 row affected (0.21 sec) Rows matched: 1 Changed: 1 Warnings: 0

আবার সিলেক্ট স্টেটমেন্ট দিয়ে টেবিলের রেকর্ডগুলো চেক করা যাক। কোয়েরিটি হলো:

mysql> select *from Replace_Demo;

আউটপুট নিচে দেওয়া হলো:

+----+-------+ | Id | Value | +----+-------+ | 1 |       | | 2 | 321 | | 3 | 354) | | 4 | 223) | | 5 | 446 | +----+-------+ 5 rows in set (0.00 sec)

দেখা যাচ্ছে, 221) মানটি খালি স্ট্রিং দিয়ে রিপ্লেস হয়েছে। MySQL-এ REGEXP দিয়ে আপডেট করা যাবে না, তাই LIKE এবং REPLACE() ফাংশন কম্বাইন করে এই কাজটি করতে হয়।

  1. Java ব্যবহার করে MySQL ডেটাবেসে ডেটা আপডেট করা

  2. Java MySQL ব্যবহার করে MySQL টেবিল আপডেট করা

  3. MySQL-এ GROUP BY ব্যবহার করে ফিল্ড আপডেট করা

  4. MySQL-এ REGEXP ব্যবহার করে নির্দিষ্ট সংখ্যা দিয়ে শুরু হওয়া স্ট্রিং-নম্বর রেকর্ড ফেচ করা