MySQL LEFT() फ़ंक्शन के साथ स्ट्रिंग प्रीफिक्स फ़िल्टरिंग
MySQL का LEFT() फ़ंक्शन किसी स्ट्रिंग से निर्दिष्ट संख्या में बाएं वर्ण निकालता है। यह पहले वर्ण (या पहले N वर्ण) के आधार पर रिकॉर्ड्स फ़िल्टर करने के लिए उपयोगी है।
उदाहरण: 'J' से शुरू होने वाले नाम ढूंढना
पहले एक कर्मचारी टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable1428 (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20)
-> );
Query OK, 0 rows affected (1.05 sec)
mysql> INSERT INTO DemoTable1428 (EmployeeName) VALUES
-> ('Chris Brown'), ('Bob Brown'), ('John Smith'),
-> ('David Miller'), ('John Doe'), ('Carol Johnson');
Query OK, 6 rows affected (0.12 sec)
mysql> SELECT * FROM DemoTable1428;
+------------+---------------+
| EmployeeId | EmployeeName |
+------------+---------------+
| 1 | Chris Brown |
| 2 | Bob Brown |
| 3 | John Smith |
| 4 | David Miller |
| 5 | John Doe |
| 6 | Carol Johnson |
+------------+---------------+
6 rows in set (0.00 sec)
LEFT() के साथ फ़िल्टर क्वेरी
mysql> SELECT * FROM DemoTable1428
-> WHERE LEFT(EmployeeName, 1) = 'J';
परिणाम
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 3 | John Smith | | 5 | John Doe | +------------+--------------+ 2 rows in set (0.00 sec)
संबंधित फ़ंक्शन
| फ़ंक्शन | उद्देश्य | उदाहरण |
|---|---|---|
LEFT(str, n) | बाएं n वर्ण | LEFT('Hello', 2) = 'He' |
RIGHT(str, n) | दाएं n वर्ण | RIGHT('Hello', 2) = 'lo' |
SUBSTRING(str, pos, len) | किसी भी स्थिति से निकालें | SUBSTRING('Hello', 2, 3) = 'ell' |
SUBSTR() | SUBSTRING का पर्याय | SUBSTR('Hello', 2) = 'ello' |
केस-असंवेदनशील मिलान
-- UPPER/LOWER का उपयोग SELECT * FROM DemoTable1428 WHERE UPPER(LEFT(EmployeeName, 1)) = 'J'; -- या COLLATE का उपयोग SELECT * FROM DemoTable1428 WHERE LEFT(EmployeeName, 1) = 'j' COLLATE utf8mb4_general_ci;
प्रदर्शन टिप
बड़े डेटासेट के लिए, पहले वर्ण के लिए एक गणना कॉलम या फंक्शनल इंडेक्स (MySQL 8.0+) बनाने पर विचार करें।