প্রথম ক্যারেক্টার অ্যালফানিউমেরিক নয় এমন সারি খুঁজে বের করতে নিচের রেগুলার এক্সপ্রেশন ব্যবহার করা যাবে।
কেস ১ − যদি আপনি সেটি চান যেগুলো ডিজিট দিয়ে শুরু হয়, তবে নিচের সিনট্যাক্স ব্যবহার করুন:
SELECT *FROM yourTableName WHERE yourColumnName REGEXP '^[0-9]';
কেস ২ − যদি আপনি সেটি চান যেগুলো অ্যালফানিউমেরিক দিয়ে শুরু হয় না, তবে নিচের সিনট্যাক্স ব্যবহার করুন:
SELECT *FROM yourTableName WHERE yourColumnName REGEXP '^[^0-9A-Za-z]';
এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:
mysql> create table getRowsFirstNotAlphanumeric -> ( -> Id int NOT NULL AUTO_INCREMENT, -> UserPassword varchar(20), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.61 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:
mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('@123456'); Query OK, 1 row affected (0.19 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('#7666666'); Query OK, 1 row affected (0.22 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('98876Carol'); Query OK, 1 row affected (0.16 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('$12345Carol'); Query OK, 1 row affected (0.09 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('%David567'); Query OK, 1 row affected (0.10 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('123456Larry'); Query OK, 1 row affected (0.07 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('909Robert'); Query OK, 1 row affected (0.12 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('3333Maxwell'); Query OK, 1 row affected (0.09 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('_123456Bob'); Query OK, 1 row affected (0.10 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('5767676Chris'); Query OK, 1 row affected (0.10 sec) mysql> insert into getRowsFirstNotAlphanumeric(UserPassword) values('(88883Mike'); Query OK, 1 row affected (0.11 sec)
এখন সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:
mysql> select *from getRowsFirstNotAlphanumeric;
আউটপুট নিচে দেওয়া হলো:
+----+--------------+ | Id | UserPassword | +----+--------------+ | 1 | @123456 | | 2 | #7666666 | | 3 | 98876Carol | | 4 | $12345Carol | | 5 | %David567 | | 6 | 123456Larry | | 7 | 909Robert | | 8 | 3333Maxwell | | 9 | _123456Bob | | 10 | 5767676Chris | | 11 | (88883Mike | +----+--------------+ 11 rows in set (0.00 sec)
কেস ১ − অ্যালফানিউমেরিক দিয়ে শুরু না হয় এমন সারি পাওয়ার কোয়েরি (দ্রষ্টব্য: আসল আর্টিকেলে কেস ১-এ ^[0-9] দিয়ে ডিজিট দিয়ে শুরু হওয়া সারি পাওয়া দেখানো হয়েছে, যা কেস ২-র বিপরীত):
mysql> SELECT *FROM getRowsFirstNotAlphanumeric -> WHERE UserPassword REGEXP '^[0-9]';
আউটপুট (ডিজিট দিয়ে শুরু হওয়া সারি):
+----+--------------+ | Id | UserPassword | +----+--------------+ | 3 | 98876Carol | | 6 | 123456Larry | | 7 | 909Robert | | 8 | 3333Maxwell | | 10 | 5767676Chris | +----+--------------+ 5 rows in set (0.00 sec)
কেস ২: অ্যালফানিউমেরিক (A-Z, a-z, 0-9) ছাড়া অন্য ক্যারেক্টার দিয়ে শুরু হওয়া সারি পাওয়ার কোয়েরি:
mysql> SELECT *FROM getRowsFirstNotAlphanumeric -> WHERE UserPassword REGEXP '^[^0-9A-Za-z]';
আউটপুট (স্পেশাল ক্যারেক্টার দিয়ে শুরু হওয়া সারি):
+----+--------------+ | Id | UserPassword | +----+--------------+ | 1 | @123456 | | 2 | #7666666 | | 4 | $12345Carol | | 5 | %David567 | | 9 | _123456Bob | | 11 | (88883Mike | +----+--------------+ 6 rows in set (0.00 sec)
ব্যাখ্যা: REGEXP '^[0-9]' ডিজিট দিয়ে শুরু হওয়া সারি 매চ করে। REGEXP '^[^0-9A-Za-z]' অ্যালফানিউমেরিক বাদে যেকোনো ক্যারেক্টার দিয়ে শুরু হওয়া সারি ম্যাচ করে (নিগেটিভ ক্যারেক্টার ক্লাস)। পাসওয়ার্ড ভ্যালিডেশন, ডেটা ক্লিনিং, লগ পারসিং-এ এই প্যাটার্ন খুব কাজে লাগে।