Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में पहली वर्ण अल्फान्यूमेरिक नहीं होने वाली पंक्तियाँ कैसे प्राप्त करें?


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]अंक या अक्षर नहीं (नकारात्मक वर्ग)

मुख्य बिंदु

  • REGEXP MySQL में रेगुलर एक्सप्रेशन मिलान के लिए है।
  • ^ एंकर शुरुआत में मिलान सुनिश्चित करता है।
  • यूनिकोड/गैर-अंग्रेजी अक्षरों के लिए, कोलेशन और [[:alpha:]] POSIX वर्ग पर विचार करें।
  • बड़े टेबल पर REGEXP इंडेक्स का उपयोग नहीं करता; फुलटेक्स्ट या जनरेटेड कॉलम विकल्प हैं।
  1. - MySQL में पहला अंक कैसे हटाएं?

    MySQL में SUBSTR() फ़ंक्शन का उपयोग करके स्ट्रिंग से पहला अंक हटाना किसी स्ट्रिंग कॉलम से पहला वर्ण (अंक) हटाने के लिए SUBSTR() या SUBSTRING() फ़ंक्शन का उपयोग करें, जिसमें शुरुआत स्थिति 2 से शुरू करें। वाक्यविन्यास UPDATE yourTableName SET yourColumnName = SUBSTR(yourColumnName, 2); उदाहरण के साथ

  1. - MySQL में FLOOR() फंक्शन का उपयोग करके व्होल नंबर डेसीमल वाले रिकॉर्ड्स कैसे खोजें

    FLOOR() फंक्शन के साथ पूर्णांक डेसीमल मान खोजना डेसीमल कॉलम में केवल वही रिकॉर्ड्स खोजें जो पूर्णांक हैं (जैसे 12.00, 35.00) FLOOR() फंक्शन का उपयोग करके। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Value DECIMAL(4,2) ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT INTO DemoTable

  1. - MySQL में GROUP BY और HAVING से isMarried=0 वाली पंक्तियां चुनें और ClientId द्वारा समूहित करें

    MySQL में किसी कॉलम का मान विशिष्ट मान (जैसे isMarried = 0) होने वाली पंक्तियों को चुनकर, दूसरे कॉलम (ClientId) द्वारा समूहित करने के लिए GROUP BY के साथ HAVING का उपयोग करें। ध्यान दें: यह पैटर्न MySQL के ONLY_FULL_GROUP_BY मोड पर निर्भर करता है। सिंटैक्स SELECT column1, column2, filter_column FRO