MySQL-এ REGEXP অপারেটর ব্যবহার করে রেগুলার এক্সপ্রেশন ম্যাচিংয়ের ভিত্তিতে রো ফিল্টার করে আপডেট করা যায়। এটি জটিল প্যাটার্ন ম্যাচিংয়ের জন্য শক্তিশালী টুল।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable2023 (
-> StreetNumber VARCHAR(100)
-> );
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable2023 VALUES ('7'), ('1'), ('AUS-100'), ('US-101');
mysql> SELECT * FROM DemoTable2023; +--------------+ | StreetNumber | +--------------+ | 7 | | 1 | | AUS-100 | | US-101 | +--------------+
REGEXP দিয়ে আপডেট
শুধু ১ বা ২ অঙ্কের সংখ্যা (যেমন '7', '1') 가진 রোয়গুলোতে 'Street' প্রিফিক্স যোগ করা:
mysql> UPDATE DemoTable2023
-> SET StreetNumber = CONCAT('Street', StreetNumber)
-> WHERE StreetNumber REGEXP '^[0-9]{1,2}$';
Query OK, 2 rows affected (0.19 sec)
ফলাফল
mysql> SELECT * FROM DemoTable2023; +--------------+ | StreetNumber | +--------------+ | Street7 | | Street1 | | AUS-100 | | US-101 | +--------------+
রেজেক্স ব্যাখ্যা: ^[0-9]{1,2}$ মানে — শুরু (^) থেকে শেষ ($) পর্যন্ত শুধু ১ বা ২ ডিজিট। 'AUS-100' এবং 'US-101' ম্যাচ হয়নি।