MySQL में LIKE BINARY का उपयोग करके केस-सेंसिटिव तुलना करें।
सिंटैक्स
SELECT yourColumnName LIKE BINARY 'anyStringValue' FROM yourTableName;
उदाहरण
टेबल बनाना
mysql> create table LikeBinaryDemo ( -> Name varchar(200) -> ); Query OK, 0 rows affected (0.58 sec)
छोटे अक्षरों में डेटा डालना
mysql> insert into LikeBinaryDemo values('john');
केस-सेंसिटिव तुलना (BINARY के साथ)
mysql> select Name like binary 'JOHN' from LikeBinaryDemo;
+-------------------------+ | Name like binary 'JOHN' | +-------------------------+ | 0 | +-------------------------+
परिणाम 0 (असत्य) क्योंकि 'john' ≠ 'JOHN' (केस-सेंसिटिव)
केस-इनसेंसिटिव तुलना (BINARY के बिना)
mysql> select Name like 'JOHN' from LikeBinaryDemo;
+------------------+ | Name like 'JOHN' | +------------------+ | 1 | +------------------+
परिणाम 1 (सत्य) क्योंकि डिफ़ॉल्ट तुलना केस-इनसेंसिटिव है
WHERE क्लॉज में उपयोग
-- केस-सेंसिटिव खोज SELECT * FROM users WHERE username LIKE BINARY 'Admin%'; -- केस-इनसेंसिटिव खोज (डिफ़ॉल्ट) SELECT * FROM users WHERE username LIKE 'admin%';
COLLATE का उपयोग (वैकल्पिक तरीका)
-- स्पष्ट कोलेशन के साथ SELECT * FROM users WHERE username COLLATE utf8mb4_bin LIKE 'Admin%'; -- कॉलम डिफॉल्ट कोलेशन बदलना (स्थायी) ALTER TABLE users MODIFY username VARCHAR(100) COLLATE utf8mb4_bin;
कब उपयोग करें
| स्थिति | सिफारिश |
|---|---|
| पासवर्ड/टोकन सत्यापन | LIKE BINARY या COLLATE ..._bin |
| उपयोगकर्ता नाम लॉगिन | आमतौर पर केस-इनसेंसिटिव |
| सामान्य खोज | केस-इनसेंसिटिव (उपयोगकर्ता-अनुकूल) |
| सटीक मिलान आवश्यक | LIKE BINARY या = BINARY |