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

MySQL में LIKE और OR से A, B, C अक्षर से शुरू होने वाले नाम कैसे खोजें?

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() भी इंडेक्स रोक सकता है
  1. - MySQL में ORDER BY DESC LIMIT OFFSET से दूसरा अधिकतम मान ढूंढें

    MySQL में ORDER BY ... DESC LIMIT 1 OFFSET 1 का उपयोग करके दूसरा सबसे बड़ा मान (second maximum) प्राप्त कर सकते हैं। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT 1 OFFSET 1; उदाहरण 1. टेबल बनाएं CREATE TABLE DemoTable (Value INT); 2. डेटा डालें INSERT INTO DemoTable VALUES(1),

  1. - MySQL में एक क्वेरी में सभी कॉलम नामों के लिए उपनाम (alias) कैसे सेट करें

    सिंटैक्स SELECT yourColumnName1 AS aliasName1, yourColumnName2 AS aliasName2 FROM yourTableName AS tableAlias; उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2014 VALUES (Chris, Brown); उपनाम के साथ क्वेरी FROM DemoTable2014 tbl; परिणाम +------------------+-----------------+ | Studen

  1. - MySQL SLES रिपॉजिटरी के साथ MySQL अपग्रेड करना

    MySQL को MySQL SLES रिपॉजिटरी का उपयोग करके अपग्रेड किया जा सकता है। आइए इस अपग्रेडेशन के लिए आवश्यक चरण देखें। डिफ़ॉल्ट रूप से, MySQL SLES रिपॉजिटरी MySQL को उस रिलीज़ सीरीज़ में नवीनतम संस्करण में अपडेट करती है जिसे उपयोगकर्ता ने इंस्टॉलेशन के दौरान चुना होगा। एक अलग रिलीज़ सीरीज़ में अपडेट करने