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

MySQL में विशिष्ट सबस्ट्रिंग से समाप्त होने वाले कॉलम मान वाली पंक्तियाँ कैसे खोजें?


LIKE ऑपरेटर के साथ % वाइल्डकार्ड का उपयोग करें

किसी विशिष्ट सबस्ट्रिंग से समाप्त होने वाले मानों को खोजने (और अपडेट करने) के लिए LIKE '%.substring' पैटर्न का उपयोग करें।

सिंटैक्स

UPDATE yourTableName 
SET yourColumnName = 'newValue' 
WHERE yourColumnName LIKE '%.yourString';

व्यावहारिक उदाहरण: .docx को .pdf में बदलना

टेबल बनाना

mysql> CREATE TABLE RowEndsWithSpecificString (
    Id INT NOT NULL AUTO_INCREMENT,
    FileName VARCHAR(30),
    PRIMARY KEY(Id)
);

फाइल नाम डालना

mysql> INSERT INTO RowEndsWithSpecificString(FileName) VALUES('MergeSort.c');
mysql> INSERT INTO RowEndsWithSpecificString(FileName) VALUES('BubbleSortIntroduction.pdf');
mysql> INSERT INTO RowEndsWithSpecificString(FileName) VALUES('AllMySQLQuery.docx');
mysql> INSERT INTO RowEndsWithSpecificString(FileName) VALUES('JavaCollections.pdf');
mysql> INSERT INTO RowEndsWithSpecificString(FileName) VALUES('JavaServlet.pdf');

अपडेट से पहले

+----+----------------------------+
| Id | FileName                   |
+----+----------------------------+
|  1 | MergeSort.c                |
|  2 | BubbleSortIntroduction.pdf |
|  3 | AllMySQLQuery.docx         |
|  4 | JavaCollections.pdf        |
|  5 | JavaServlet.pdf            |
+----+----------------------------+

क्वेरी: .docx से समाप्त होने वाले को .pdf में अपडेट करना

mysql> UPDATE RowEndsWithSpecificString 
SET FileName = 'IntroductionToCoreJava.pdf' 
WHERE FileName LIKE '%.docx';
Query OK, 1 row affected (0.14 sec)
Rows matched: 1  Changed: 1  Warnings: 0

अपडेट के बाद

+----+----------------------------+
| Id | FileName                   |
+----+----------------------------+
|  1 | IntroductionToCoreJava.pdf |
|  2 | BubbleSortIntroduction.pdf |
|  3 | IntroductionToCoreJava.pdf |
|  4 | JavaCollections.pdf        |
|  5 | JavaServlet.pdf            |
+----+----------------------------+

पैटर्न विविधताएं

पैटर्नमिलानउदाहरण
LIKE 'abc%''abc' से शुरू'abc123', 'abc'
LIKE '%abc''abc' से समाप्त'123abc', 'abc'
LIKE '%abc%''abc' कहीं भी'123abc456', 'abc'
LIKE '_abc'एक अक्षर फिर 'abc''xabc', '1abc'

केस-सेंसिटिविटी

  • डिफ़ॉल्ट कोलेशन (जैसे utf8mb4_general_ci) केस-इनसेंसिटिव है।
  • केस-सेंसिटिव मिलान के लिए: WHERE FileName LIKE BINARY '%.docx' या COLLATE utf8mb4_bin उपयोग करें।

नोट

उदाहरण में सभी .docx फाइलों को एक ही नाम 'IntroductionToCoreJava.pdf' में बदल दिया गया। वास्तविक उपयोग में, आप REPLACE(FileName, '.docx', '.pdf') का उपयोग करके केवल एक्सटेंशन बदलना चाहेंगे।

  1. MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें

    information_schema.columns टेबल को क्वेरी करके डेटाबेस में विशिष्ट कॉलम नाम वाली सभी टेबल खोजें। सिंटैक्स SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name LIKE %yourSearchValue% AND table_schema = DATABASE(); उदाहरण: Client वाली कॉलम खोजना SELECT DISTINCT table_name FR

  1. - MySQL में LIKE क्वेरी से % चिह्न वाले कॉलम मान खोजना

    ESCAPE करके % को शाब्दिक मिलान करना LIKE में % वाइल्डकार्ड है। इसे शाब्दिक % वर्ण के रूप में खोजने के लिए बैकस्लैश \ से एस्केप करें: \\%। तालिका और डेटा (%JohnSmith), (DavidMiller), (CarolTaylor%), (%DavidMiller); क्वेरी: % से शुरू होने वाले नाम SELECT * FROM DemoTable1497 WHERE Name LIKE \\%;

  1. - MySQL में REGEXP से पाइप-सीमित कॉलम में मान ढूंढें

    MySQL में REGEXP ऑपरेटर का उपयोग करके पाइप (|) से अलग किए गए मानों वाले कॉलम में विशिष्ट मान खोज सकते हैं। समस्या कॉलम में 8|56|78|45 जैसा डेटा है। साधारण LIKE %8% से 8, 58, 80, 98 आदि सभी मिलेंगे। सटीक मिलान के लिए रेगुलर एक्सप्रेशन चाहिए। समाधान: शब्द सीमा पैटर्न WHERE कॉलम REGEXP [[::]] -- या प