MySQL-এ ভার্সন স্ট্রিং বা ডট-সেপারেটেড সংখ্যা (যেমন '1.0.0', '1.5.0') ফিল্টার করতে REGEXP ব্যবহার করা হয়।
টেবিল এবং ডেটা
CREATE TABLE DemoTable (
Version VARCHAR(20)
);
INSERT INTO DemoTable VALUES('1.0.0');
INSERT INTO DemoTable VALUES('2.s6.9');
INSERT INTO DemoTable VALUES('1.5.0');
কুয়েরি: শুধু সংখ্যা ও ডট সমাহিত ভার্সন (সেমভার-লাইক)
SELECT * FROM DemoTable
WHERE Version REGEXP '^[0-9]+\\.[0-9]+(\\.[0-9]+)*$';
ফলাফল
+---------+
| Version |
+---------+
| 1.0.0 |
| 1.5.0 |
+---------+
রেজেক্স ব্যাখ্যা
^— স্ট্রিংয়ের শুরু[0-9]+— এক বা একাধিক ডিজিট (মেজর ভার্সন)\\.— লিটারেল ডট[0-9]+— মাইনর ভার্সন(\\.[0-9]+)*— অপশনাল প্যাচ/বিল্ড (ডট + ডিজিট, শূন্য বা অধিকবার)$— স্ট্রিংয়ের শেষ
ম্যাচ হয়
- '1.0.0' ✓
- '1.5.0' ✓
- '2.10.3' ✓
- '1.0' ✓ (প্যাচ অপশনাল)
ম্যাচ না হয়
- '2.s6.9' ✗ (অক্ষর 's')
- 'v1.0.0' ✗ (প্রিফিক্স 'v')
- '1..0' ✗ (ডাবল ডট)
MySQL 8.0+: REGEXP_REPLACE (রিপ্লেস)
রেজেক্স দিয়ে রিপ্লেস করতে REGEXP_REPLACE(col, pattern, repl) ব্যবহার করুন (৮.০.৪+).