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

MySQL में RIGHT और INSTR का उपयोग करके कॉलम के अंतिम 5 वर्णों में खोज करना

MySQL में RIGHT() और INSTR() फ़ंक्शन का उपयोग करके कॉलम के अंतिम भाग (अंतिम स्पेस के बाद) में पैटर्न खोजें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> EmployeeName VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.81 sec)
mysql> INSERT INTO DemoTable VALUES
    -> ('Adam Smith'), ('Carol Taylor'), ('David Miller'), ('Chris Evan');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------------+
| EmployeeName |
+--------------+
| Adam Smith   |
| Carol Taylor |
| David Miller |
| Chris Evan   |
+--------------+
4 rows in set (0.00 sec)

अंतिम स्पेस के बाद "Mille%" पैटर्न खोजना

mysql> SELECT * FROM DemoTable
    -> WHERE RIGHT(EmployeeName, INSTR(EmployeeName, ' ')) LIKE 'Mille%';

आउटपुट

+--------------+
| EmployeeName |
+--------------+
| David Miller |
+--------------+
1 row in set (0.00 sec)

व्याख्या:

  1. INSTR(EmployeeName, ' ') - पहले स्पेस की स्थिति खोजता है (बाएं से)
  2. RIGHT(EmployeeName, pos) - दाएं से उतने वर्ण लेता है
  3. समस्या: यह लॉजिक त्रुटिपूर्ण है! INSTR पहले स्पेस की स्थिति देता है, न कि अंतिम स्पेस की। "David Miller" (12 वर्ण) में पहला स्पेस 5वें स्थान पर है, तो RIGHT(..., 5) → "Miller" देता है जो संयोग से काम करता है। लेकिन "John A Smith" के लिए गलत परिणाम देगा।

सही दृष्टिकोण - अंतिम स्पेस के बाद का भाग:

-- MySQL 8.0+
SELECT * FROM DemoTable
WHERE SUBSTRING_INDEX(EmployeeName, ' ', -1) LIKE 'Mille%';

-- या सभी संस्करणों के लिए
SELECT * FROM DemoTable
WHERE TRIM(SUBSTRING_INDEX(EmployeeName, ' ', -1)) LIKE 'Mille%';

SUBSTRING_INDEX(str, ' ', -1) सीधे अंतिम स्पेस के बाद का भाग लौटाता है।

  1. - MySQL में अंतिम नाम के आधार पर कॉलम काउंट जोड़ें

    सेल्फ JOIN के साथ प्रत्येक पंक्ति पर समूह गणना दिखाना प्रत्येक पंक्ति पर उसके अंतिम नाम की कुल आवृत्ति दिखाने के लिए, उपक्वेरी में GROUP BY LastName करके गणना करें, फिर मूल टेबल से JOIN करें। टेबल और डेटा CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHA

  1. - MySQL में REGEXP का उपयोग करके स्ट्रिंग में विशिष्ट वर्ण खोजें

    REGEXP ऑपरेटर का उपयोग करके जांचें कि क्या कोई स्ट्रिंग किसी विशेष क्रम में वर्णों के अनुक्रम को समाहित करती है। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (Value VARCHAR(50)); Query OK, 0 rows affected (3.92 sec) INSERT INTO DemoTable VALUES(XYSJGHAKLMVDFFSA),(PQRSTJAVAL),(SJATUVAK),(JSTUV

  1. - MySQL में REPLACE() से कॉलम मान में विशेष वर्ण बदलें

    MySQL का REPLACE() फ़ंक्शन किसी स्ट्रिंग में सभी घटनाओं को ढूंढकर नए स्ट्रिंग से बदल देता है। इसका उपयोग UPDATE के साथ करके कॉलम डेटा साफ़ कर सकते हैं। सिंटैक्स UPDATE टेबल_नाम SET कॉलम_नाम = REPLACE(कॉलम_नाम, पुराना_स्ट्रिंग, नया_स्ट्रिंग); उदाहरण: ______ को Mike_007 से बदलें 1. टेबल बनाएं CREA