MySQL में केस-सेंसिटिव एक्जैक्ट स्ट्रिंग खोजने के लिए BINARY ऑपरेटर का उपयोग करें। यह बाइट-दर-बाइट तुलना करता है।
सिंटैक्स
SELECT * FROM yourTableName WHERE BINARY yourColumnName = 'yourStringValue';
उदाहरण के साथ समझें
टेबल बनाएं:
CREATE TABLE ExactSearch (
Id INT NOT NULL AUTO_INCREMENT,
UserId VARCHAR(10),
UserName VARCHAR(20),
PRIMARY KEY(Id)
);
रिकॉर्ड डालें:
INSERT INTO ExactSearch(UserId, UserName) VALUES('USER12', 'John');
INSERT INTO ExactSearch(UserId, UserName) VALUES('12USER', 'Carol');
INSERT INTO ExactSearch(UserId, UserName) VALUES('USER123', 'Bob');
INSERT INTO ExactSearch(UserId, UserName) VALUES('USER231', 'Sam');
सभी रिकॉर्ड देखें:
SELECT * FROM ExactSearch;
आउटपुट:
+----+---------+----------+
| Id | UserId | UserName |
+----+---------+----------+
| 1 | USER12 | John |
| 2 | 12USER | Carol |
| 3 | USER123 | Bob |
| 4 | USER231 | Sam |
+----+---------+----------+
एक्जैक्ट मैच के लिए क्वेरी
"USER123" खोजें (केस-सेंसिटिव):
SELECT * FROM ExactSearch WHERE BINARY UserId = 'USER123';
परिणाम:
+----+---------+----------+
| Id | UserId | UserName |
+----+---------+----------+
| 3 | USER123 | Bob |
+----+---------+----------+
महत्वपूर्ण बिंदु
BINARYकॉलम को बाइनरी स्ट्रिंग में बदल देता है- बिना BINARY के, MySQL डिफॉल्ट कॉलेशन (आमतौर पर केस-इनसेंसिटिव) का उपयोग करता है
WHERE UserId = 'user123'औरWHERE BINARY UserId = 'user123'अलग परिणाम देंगे- बड़े डेटासेट पर BINARY इंडेक्स उपयोग को प्रभावित कर सकता है