BINARY UPPER() फंक्शन का उपयोग करें
केस-सेंसिटिव तुलना के लिए BINARY कीवर्ड के साथ UPPER() का उपयोग करके केवल पूरी तरह से अपरकेस स्ट्रिंग वाली पंक्तियाँ खोजें।
सिंटैक्स
SELECT * FROM yourTableName WHERE yourColumnName = BINARY UPPER(yourColumnName);
व्यावहारिक उदाहरण
टेबल बनाना
mysql> CREATE TABLE FindUpperCaseDemo (
Id INT,
FirstName VARCHAR(20),
Age INT
);
मिश्रित केस डेटा डालना
mysql> INSERT INTO FindUpperCaseDemo VALUES(1, 'John', 23); mysql> INSERT INTO FindUpperCaseDemo VALUES(2, 'CAROL', 21); mysql> INSERT INTO FindUpperCaseDemo VALUES(3, 'JoHN', 23); mysql> INSERT INTO FindUpperCaseDemo VALUES(4, 'JOHN', 26); mysql> INSERT INTO FindUpperCaseDemo VALUES(5, 'sAM', 26); mysql> INSERT INTO FindUpperCaseDemo VALUES(6, 'SAM', 28); mysql> INSERT INTO FindUpperCaseDemo VALUES(7, 'MIKE', 29); mysql> INSERT INTO FindUpperCaseDemo VALUES(8, 'BOB', 20); mysql> INSERT INTO FindUpperCaseDemo VALUES(9, 'LARRY', 22); mysql> INSERT INTO FindUpperCaseDemo VALUES(10, 'LARRy', 22);
सभी रिकॉर्ड
+------+-----------+------+ | Id | FirstName | Age | +------+-----------+------+ | 1 | John | 23 | | 2 | CAROL | 21 | | 3 | JoHN | 23 | | 4 | JOHN | 26 | | 5 | sAM | 26 | | 6 | SAM | 28 | | 7 | MIKE | 29 | | 8 | BOB | 20 | | 9 | LARRY | 22 | | 10 | LARRy | 22 | +------+-----------+------+
क्वेरी: केवल पूरी तरह से अपरकेस नाम
mysql> SELECT * FROM FindUpperCaseDemo WHERE FirstName = BINARY UPPER(FirstName);
आउटपुट
+------+-----------+------+ | Id | FirstName | Age | +------+-----------+------+ | 2 | CAROL | 21 | | 4 | JOHN | 26 | | 6 | SAM | 28 | | 7 | MIKE | 29 | | 8 | BOB | 20 | | 9 | LARRY | 22 | +------+-----------+------+
व्याख्या
UPPER(FirstName)— स्ट्रिंग को अपरकेस में बदलता है।BINARY— तुलना को केस-सेंसिटिव (बाइनरी तुलना) बनाता है।FirstName = BINARY UPPER(FirstName)— केवल तभी सच होता है जब मूल मान पहले से ही पूरी तरह से अपरकेस हो।
विकल्प: REGEXP
SELECT * FROM FindUpperCaseDemo WHERE FirstName REGEXP '^[A-Z]+$';
मुख्य बिंदु
- डिफ़ॉल्ट रूप से MySQL तुलना केस-इनसेंसिटिव होती है (कोलेशन पर निर्भर)।
BINARYबाइट-दर-बाइट तुलना बाध्य करता है।- बड़े टेबल पर प्रदर्शन के लिए, एक जनरेटेड कॉलम या फंक्शनल इंडेक्स पर विचार करें।