RLIKE और BINARY से कैपिटल लेटर खोजें
MySQL में उन फील्ड को खोजने के लिए जिनमें कम से कम एक कैपिटल लेटर (बड़ा अक्षर) हो, RLIKE के साथ CAST(... AS BINARY) का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName WHERE CAST(yourColumnName AS BINARY) RLIKE '[A-Z]';
उदाहरण
टेबल बनाएं:
mysql> CREATE TABLE contains_capital_letterDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(100)
-> );
मिश्रित केस वाले नाम इन्सर्ट करें:
mysql> INSERT INTO contains_capital_letterDemo(Name) VALUES('Larry');
mysql> INSERT INTO contains_capital_letterDemo(Name) VALUES('larry');
mysql> INSERT INTO contains_capital_letterDemo(Name) VALUES('john');
mysql> INSERT INTO contains_capital_letterDemo(Name) VALUES('JOHN');
mysql> INSERT INTO contains_capital_letterDemo(Name) VALUES('mike');
mysql> INSERT INTO contains_capital_letterDemo(Name) VALUES('Mike');
सभी रिकॉर्ड:
+----+-------+ | Id | Name | +----+-------+ | 1 | Larry | | 2 | larry | | 3 | john | | 4 | JOHN | | 5 | mike | | 6 | Mike | +----+-------+
कैपिटल लेटर वाले नाम खोजने की क्वेरी
mysql> SELECT * FROM contains_capital_letterDemo WHERE CAST(Name AS BINARY) RLIKE '[A-Z]';
परिणाम:
+----+-------+ | Id | Name | +----+-------+ | 1 | Larry | | 4 | JOHN | | 6 | Mike | +----+-------+
कैसे काम करता है:
CAST(Name AS BINARY)- कॉलम को बाइनरी स्ट्रिंग में बदलता है, जिससे तुलना केस-सेंसिटिव हो जाती हैRLIKE '[A-Z]'- पैटर्न मैचिंग करता है, A से Z तक कोई भी कैपिटल लेटर खोजता है- बिना
BINARYके, MySQL डिफ़ॉल्ट कोलेशन (आमतौर पर केस-इनसेंसिटिव) उपयोग करता
वैकल्पिक तरीका: WHERE Name REGEXP BINARY '[A-Z]' भी समान काम करता है।