Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में स्वरों (वॉवेल) से न शुरू होने वाले शहरों के नाम कैसे खोजें?

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 YorkNनहीं✓ हाँ
IndianapolisIहाँ✗ नहीं
El PasoEहाँ✗ नहीं
AustinAहाँ✗ नहीं
DenverDनहीं✓ हाँ
Las VegasLनहीं✓ हाँ
AlbuquerqueAहाँ✗ नहीं
PortlandPनहीं✓ हाँ
IrvineIहाँ✗ नहीं
GarlandGनहीं✓ हाँ

वैकल्पिक: LEFT() और NOT IN के साथ

SELECT DISTINCT CityName FROM Employee_Information 
WHERE UPPER(LEFT(CityName, 1)) NOT IN ('A','E','I','O','U');

यह तरीका कुछ मामलों में तेज हो सकता है क्योंकि रेगुलर एक्सप्रेशन की आवश्यकता नहीं।

  1. - MySQL में GROUP_CONCAT का उपयोग करके पंक्तियों को कॉमा-सेपरेटेड सूची में संक्षिप्त करें

    GROUP_CONCAT() के साथ GROUP BY का उपयोग करके एकाधिक पंक्तियों को एक कॉमा-सेपरेटेड स्ट्रिंग में संयोजित करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (Id INT, Name VARCHAR(40)); Query OK, 0 rows affected (0.52 sec) INSERT INTO DemoTable VALUES(100,Chris Brown),(101,Adam Smith),(101,John D

  1. - MySQL में LIKE ऑपरेटर के साथ एकाधिक फील्ड्स पर समान मान खोजना

    परिचय MySQL में CONCAT() फंक्शन का उपयोग करके एकाधिक कॉलम्स को जोड़कर, फिर LIKE ऑपरेटर से पैटर्न मिलान करके एक साथ कई फील्ड्स पर खोज की जा सकती है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.58 sec) INSERT INTO DemoTable VALUES(John, MongoDB); Query OK, 1 row affected (0.12

  1. - MySQL में CREATE TABLE में AUTO_INCREMENT प्रारंभ मान मैन्युअल सेट करें

    CREATE TABLE स्टेटमेंट में AUTO_INCREMENT = N टेबल विकल्प का उपयोग करके ऑटो-इन्क्रीमेंट काउंटर का प्रारंभ मान सेट करें। टेबल बनाएं (प्रारंभ 100) mysql> CREATE TABLE DemoTable1907 ( UserId INT NOT NULL AUTO_INCREMENT, UserName VARCHAR(20), UserAge INT, UserCountryName VARCHAR(20),