REGEXP के साथ पैटर्न मिलान
पहला वर्ण अल्फान्यूमेरिक (अक्षर या अंक) नहीं होने वाली पंक्तियाँ खोजने के लिए REGEXP के साथ नकारात्मक वर्ण वर्ग ([^0-9A-Za-z]) का उपयोग करें।
सिंटैक्स
केस 1: अंक से शुरू होने वाली पंक्तियाँ
SELECT * FROM yourTableName WHERE yourColumnName REGEXP '^[0-9]';
केस 2: अल्फान्यूमेरिक (अक्षर/अंक) से नहीं शुरू होने वाली पंक्तियाँ
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)
);
विभिन्न प्रारंभिक वर्णों के साथ पासवर्ड डालना
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('@123456');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('#7666666');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('98876Carol');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('$12345Carol');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('%David567');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('123456Larry');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('909Robert');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('3333Maxwell');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('_123456Bob');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('5767676Chris');
mysql> INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('(88883Mike');
सभी रिकॉर्ड
+----+--------------+ | Id | UserPassword | +----+--------------+ | 1 | @123456 | | 2 | #7666666 | | 3 | 98876Carol | | 4 | $12345Carol | | 5 | %David567 | | 6 | 123456Larry | | 7 | 909Robert | | 8 | 3333Maxwell | | 9 | _123456Bob | | 10 | 5767676Chris | | 11 | (88883Mike | +----+--------------+
केस 1: अंक से शुरू होने वाली पंक्तियाँ (^[0-9])
mysql> SELECT * FROM getRowsFirstNotAlphanumeric WHERE UserPassword REGEXP '^[0-9]';
+----+--------------+ | Id | UserPassword | +----+--------------+ | 3 | 98876Carol | | 6 | 123456Larry | | 7 | 909Robert | | 8 | 3333Maxwell | | 10 | 5767676Chris | +----+--------------+
केस 2: अल्फान्यूमेरिक से नहीं शुरू होने वाली पंक्तियाँ (^[^0-9A-Za-z])
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 | +----+--------------+
रेगुलर एक्सप्रेशन व्याख्या
| पैटर्न | अर्थ |
|---|---|
^ | स्ट्रिंग की शुरुआत |
[0-9] | कोई अंक (0-9) |
[A-Za-z] | कोई अंग्रेजी अक्षर |
[^0-9A-Za-z] | अंक या अक्षर नहीं (नकारात्मक वर्ग) |
मुख्य बिंदु
REGEXPMySQL में रेगुलर एक्सप्रेशन मिलान के लिए है।^एंकर शुरुआत में मिलान सुनिश्चित करता है।- यूनिकोड/गैर-अंग्रेजी अक्षरों के लिए, कोलेशन और
[[:alpha:]]POSIX वर्ग पर विचार करें। - बड़े टेबल पर
REGEXPइंडेक्स का उपयोग नहीं करता; फुलटेक्स्ट या जनरेटेड कॉलम विकल्प हैं।