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

MySQL में LIKE ऑपरेटर को IN() की तरह कैसे उपयोग करें?

MySQL में LIKE ऑपरेटर को IN() की तरह उपयोग करने के लिए COUNT(), IF() और LIKE का संयोजन उपयोग करें। यह पैटर्न मिलान की गणना करने के लिए उपयोगी है।

उदाहरण परिदृश्य

विषय कॉलम में 'MySQL', 'Java', 'MongoDB' शब्दों की घटनाएं गिनना।

तालिका और डेटा

mysql> CREATE TABLE DemoTable (Subject VARCHAR(80));
mysql> INSERT INTO DemoTable VALUES 
    -> ('MySQLMongoDB'), ('MySQL'), ('JavaMySQL'), ('MongoDB'), ('Java');

डेटा

+--------------+
| Subject      |
+--------------+
| MySQLMongoDB |
| MySQL        |
| JavaMySQL    |
| MongoDB      |
| Java         |
+--------------+

क्वेरी: प्रत्येक पैटर्न की घटनाएं गिनें

mysql> SELECT
    ->     COUNT(IF(Subject LIKE '%MySQL%', 1, NULL)) AS MySQLCount,
    ->     COUNT(IF(Subject LIKE '%Java%', 1, NULL)) AS JavaCount,
    ->     COUNT(IF(Subject LIKE '%MongoDB%', 1, NULL)) AS MongoDBCount
    -> FROM DemoTable;

परिणाम

+------------+-----------+--------------+
| MySQLCount | JavaCount | MongoDBCount |
+------------+-----------+--------------+
|          3 |         2 |            2 |
+------------+-----------+--------------+

व्याख्या

  • MySQL: 'MySQLMongoDB', 'MySQL', 'JavaMySQL' में मौजूद = 3
  • Java: 'JavaMySQL', 'Java' में मौजूद = 2
  • MongoDB: 'MySQLMongoDB', 'MongoDB' में मौजूद = 2

तकनीक

  • IF(condition, 1, NULL) - शर्त पूरी होने पर 1, अन्यथा NULL
  • COUNT() - NULL को छोड़कर गैर-NULL मान गिनता है
  • %pattern% - वाइल्डकार्ड के साथ आंशिक मिलान

उपयोग केस

टैग गिनती, कीवर्ड विश्लेषण, सामग्री वर्गीकरण रिपोर्ट।

  1. - MySQL में आंशिक मान (जैसे 'John_120' में संख्या) पर सॉर्ट करना

    SUBSTRING_INDEX और ORDER BY से संख्यात्मक भाग पर सॉर्ट अंडरस्कोर से अलग किए गए स्ट्रिंग में SUBSTRING_INDEX() से संख्यात्मक भाग निकालकर संख्यात्मक क्रम में सॉर्ट करें। तालिका और डेटा (John_120), (John_201), (Mike_178), (Bob_198); क्वेरी: दाएँ भाग (संख्या) पर सॉर्ट ORDER BY RightPart; परिणाम +

  1. - MySQL क्वेरी में दो बार LIKE क्लॉज का उपयोग

    OR ऑपरेटर से एकाधिक LIKE शर्तें जोड़ें एक कॉलम पर दो अलग-अलग पैटर्न से फ़िल्टर करने के लिए OR के साथ दो LIKE क्लॉज का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2009 ( Name varchar(20) ); Query OK, 0 rows affected (0.51 sec) mysql> insert into DemoTable2009 values(John

  1. - MySQL में डायनामिक ऐरे के साथ LIKE क्वेरी कैसे करें?

    सिंटैक्स select * from yourTableName where yourColumnName2 like %yourValue% order by yourColumnName1 asc limit yourLimitValue; उदाहरण: कॉमा-सेपरेटेड नामों में खोज insert into demo74(user_names) values(John Smith1,John Smith2,John Smith3), (John Smith1), (David Smith1), (John Smith1,John Smith2,Jo