RLIKE (रेगुलर एक्सप्रेशन) का उपयोग करके फ़िल्टर करना
MySQL में उन पंक्तियों को चुनने के लिए जिनका पहला कैरेक्टर अंक (0-9) है, हम RLIKE ऑपरेटर का उपयोग करते हैं।
सिंटैक्स
SELECT * FROM yourTableName WHERE yourColumnName RLIKE '^[0-9]+';
उदाहरण
1. टेबल बनाना
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
QuestionNumber VARCHAR(200)
);
Query OK, 0 rows affected (0.56 sec)
2. डेटा डालना
mysql> INSERT INTO DemoTable(QuestionNumber) VALUES('1Question');
mysql> INSERT INTO DemoTable(QuestionNumber) VALUES('Question2');
mysql> INSERT INTO DemoTable(QuestionNumber) VALUES('311Question');
mysql> INSERT INTO DemoTable(QuestionNumber) VALUES('45Question');
mysql> INSERT INTO DemoTable(QuestionNumber) VALUES('Question10');
3. सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable;
+----+----------------+ | Id | QuestionNumber | +----+----------------+ | 1 | 1Question | | 2 | Question2 | | 3 | 311Question | | 4 | 45Question | | 5 | Question10 | +----+----------------+ 5 rows in set (0.00 sec)
4. अंक से शुरू होने वाली पंक्तियाँ चुनना
mysql> SELECT * FROM DemoTable WHERE QuestionNumber RLIKE '^[0-9]+';
+----+----------------+ | Id | QuestionNumber | +----+----------------+ | 1 | 1Question | | 3 | 311Question | | 4 | 45Question | +----+----------------+ 3 rows in set (0.03 sec)
रेगुलर एक्सप्रेशन समझाया गया
^- स्ट्रिंग की शुरुआत[0-9]- 0 से 9 तक कोई भी अंक+- एक या अधिक बार- इसलिए
^[0-9]+का मतलब: स्ट्रिंग एक या अधिक अंकों से शुरू होनी चाहिए
वैकल्पिक: REGEXP का उपयोग
RLIKE, REGEXP का पर्यायवाची है। आप इसे भी लिख सकते हैं:
SELECT * FROM DemoTable WHERE QuestionNumber REGEXP '^[0-9]+';