MySQL में DISTINCT और RLIKE (रेगुलर एक्सप्रेशन) का उपयोग करके उन शहरों के नाम खोजें जो स्वरों (A, E, I, O, U) से **नहीं** शुरू होते।
सिंटैक्स
SELECT DISTINCT yourCityColumnName
FROM yourTableName
WHERE yourCityColumnName NOT RLIKE '^[AEIOUaeiou].*$';
रेगुलर एक्सप्रेशन समझें
^- स्ट्रिंग की शुरुआत[AEIOUaeiou]- कोई भी स्वर (बड़ा या छोटा).*- कोई भी कैरेक्टर शून्य या अधिक बार$- स्ट्रिंग का अंतNOT RLIKE- पैटर्न से **नहीं** मिलने वाले
उदाहरण के साथ समझें
टेबल बनाएं:
CREATE TABLE Employee_Information (
Id INT NOT NULL AUTO_INCREMENT,
EmployeeName VARCHAR(20),
CityName VARCHAR(20),
PRIMARY KEY(Id)
);
विभिन्न शहरों के साथ रिकॉर्ड डालें:
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Larry', 'New York');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Sam', 'Indianapolis');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Carol', 'El Paso');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('John', 'Austin');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Mike', 'Denver');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('David', 'Las Vegas');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('James', 'Albuquerque');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Robert', 'Portland');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Richard', 'Irvine');
INSERT INTO Employee_Information(EmployeeName, CityName) VALUES('Michael', 'Garland');
सभी रिकॉर्ड देखें:
SELECT * FROM Employee_Information;
आउटपुट:
+----+--------------+--------------+
| Id | EmployeeName | CityName |
+----+--------------+--------------+
| 1 | Larry | New York |
| 2 | Sam | Indianapolis |
| 3 | Carol | El Paso |
| 4 | John | Austin |
| 5 | Mike | Denver |
| 6 | David | Las Vegas |
| 7 | James | Albuquerque |
| 8 | Robert | Portland |
| 9 | Richard | Irvine |
| 10 | Michael | Garland |
+----+--------------+--------------+
स्वर से न शुरू होने वाले शहर खोजने का क्वेरी
SELECT DISTINCT CityName FROM Employee_Information
WHERE CityName NOT RLIKE '^[AEIOUaeiou].*$';
परिणाम:
+-----------+
| CityName |
+-----------+
| New York |
| Denver |
| Las Vegas |
| Portland |
| Garland |
+-----------+
व्याख्या
| शहर | पहला अक्षर | स्वर है? | परिणाम में? |
|---|---|---|---|
| New York | N | नहीं | ✓ हाँ |
| Indianapolis | I | हाँ | ✗ नहीं |
| El Paso | E | हाँ | ✗ नहीं |
| Austin | A | हाँ | ✗ नहीं |
| Denver | D | नहीं | ✓ हाँ |
| Las Vegas | L | नहीं | ✓ हाँ |
| Albuquerque | A | हाँ | ✗ नहीं |
| Portland | P | नहीं | ✓ हाँ |
| Irvine | I | हाँ | ✗ नहीं |
| Garland | G | नहीं | ✓ हाँ |
वैकल्पिक: LEFT() और NOT IN के साथ
SELECT DISTINCT CityName FROM Employee_Information
WHERE UPPER(LEFT(CityName, 1)) NOT IN ('A','E','I','O','U');
यह तरीका कुछ मामलों में तेज हो सकता है क्योंकि रेगुलर एक्सप्रेशन की आवश्यकता नहीं।