MySQL में विशिष्ट अक्षरों (A, B, C) से शुरू होने वाले नाम खोजने के लिए LIKE ऑपरेटर के साथ OR का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName
WHERE yourColumnName LIKE 'A%'
OR yourColumnName LIKE 'B%'
OR yourColumnName LIKE 'C%';
उदाहरण के साथ समझें
टेबल बनाएं:
CREATE TABLE AllNamesStartWithAorBorC (
Id INT NOT NULL AUTO_INCREMENT,
EmployeeName VARCHAR(20),
PRIMARY KEY(Id)
);
विभिन्न नाम डालें:
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('Adam');
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('Bob');
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('baden');
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('Carol');
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('Mike');
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('Larry');
INSERT INTO AllNamesStartWithAorBorC(EmployeeName) VALUES('Chris');
सभी रिकॉर्ड देखें:
SELECT * FROM AllNamesStartWithAorBorC;
आउटपुट:
+----+--------------+
| Id | EmployeeName |
+----+--------------+
| 1 | Adam |
| 2 | Bob |
| 3 | baden |
| 4 | Carol |
| 5 | Mike |
| 6 | Larry |
| 7 | Chris |
+----+--------------+
A, B, C से शुरू होने वाले नाम खोजें
SELECT * FROM AllNamesStartWithAorBorC
WHERE EmployeeName LIKE 'A%'
OR EmployeeName LIKE 'B%'
OR EmployeeName LIKE 'C%';
परिणाम:
+----+--------------+
| Id | EmployeeName |
+----+--------------+
| 1 | Adam |
| 2 | Bob |
| 3 | baden |
| 4 | Carol |
| 7 | Chris |
+----+--------------+
केस-इनसेंसिटिव मिलान (डिफॉल्ट)
MySQL डिफॉल्ट कॉलेशन (utf8mb4_0900_ai_ci) केस-इनसेंसिटिव है, इसलिए 'b' और 'B' दोनों मेल खाते हैं।
केस-सेंसिटिव मिलान के लिए
-- BINARY के साथ
WHERE BINARY EmployeeName LIKE 'A%'
OR BINARY EmployeeName LIKE 'B%'
OR BINARY EmployeeName LIKE 'C%'
-- या केस-सेंसिटिव कॉलेशन के साथ
WHERE EmployeeName COLLATE utf8mb4_bin LIKE 'A%'
OR EmployeeName COLLATE utf8mb4_bin LIKE 'B%'
OR EmployeeName COLLATE utf8mb4_bin LIKE 'C%'
बेहतर विकल्प: REGEXP/RLIKE
-- केस-इनसेंसिटिव (डिफॉल्ट)
WHERE EmployeeName REGEXP '^[ABCabc]'
-- केस-सेंसिटिव
WHERE EmployeeName REGEXP BINARY '^[ABC]'
IN के साथ (यदि सटीक मान हों)
-- यह काम नहीं करेगा क्योंकि LIKE पैटर्न चाहिए
-- WHERE EmployeeName IN ('A%', 'B%', 'C%') -- गलत
-- लेकिन LEFT() के साथ काम करेगा
WHERE LEFT(UPPER(EmployeeName), 1) IN ('A', 'B', 'C')
प्रदर्शन नोट
LIKE 'A%'इंडेक्स उपयोग कर सकता है (यदि कॉलम पर इंडेक्स हो)LIKE '%A%'(वाइल्डकार्ड शुरुआत में) इंडेक्स उपयोग नहीं कर सकताREGEXPआमतौर पर इंडेक्स उपयोग नहीं करता- बड़े टेबल पर
LEFT()याSUBSTRING()भी इंडेक्स रोक सकता है