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

MySQL में विशिष्ट स्ट्रिंग की घटनाओं की संख्या कैसे गिनें? LENGTH और REPLACE

इसके लिए LENGTH() का उपयोग करें।

टेबल बनाएं

mysql> create table DemoTable (
    -> Value TEXT
    -> );
Query OK, 0 rows affected (0.74 sec)

रिकॉर्ड्स डालें

mysql> insert into DemoTable values('10,20,10,30,10,40,50,40');
Query OK, 1 row affected (0.24 sec)

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

mysql> select * from DemoTable;
+-------------------------+
| Value                   |
+-------------------------+
| 10,20,10,30,10,40,50,40 |
+-------------------------+
1 row in set (0.00 sec)

MySQL में विशिष्ट स्ट्रिंग की घटनाओं की संख्या गिनने का क्वेरी ('10' की घटना)

mysql> SELECT LENGTH(Value) + 2 - LENGTH(REPLACE(CONCAT(',', Value, ','), ',10,', 'len')) FROM DemoTable;

आउटपुट:

+----------------------------------------------------------------------------+
| LENGTH(Value) + 2 - LENGTH(REPLACE(CONCAT(',', Value, ','), ',10,', 'len')) |
+----------------------------------------------------------------------------+
| 3                                                                          |
+----------------------------------------------------------------------------+
1 row in set (0.00 sec)

व्याख्या:

  • CONCAT(',', Value, ',') - शुरुआत और अंत में कॉमा जोड़ें (',10,20,10,30,10,40,50,40,')
  • REPLACE(..., ',10,', 'len') - प्रत्येक ',10,' को 'len' (3 वर्ण) से बदलें
  • LENGTH(Value) + 2 - मूल लंबाई + 2 (जोड़े गए कॉमा)
  • लंबाई अंतर / 3 = घटनाओं की संख्या (सरलीकृत सूत्र)
  • '10' 3 बार आता है

सामान्य सूत्र: (LENGTH(str) - LENGTH(REPLACE(str, substr, ''))) / LENGTH(substr)

कॉमा-सेपरेटेड मानों के लिए सीमा समायोजन की आवश्यकता होती है।

  1. - MySQL में COUNT और GROUP BY से विशिष्ट पैटर्न के विशिष्ट आइटम गिनें

    किसी कॉलम में विशिष्ट पैटर्न (जैसे John-%) से शुरू होने वाले मानों की प्रति-मान गणना करने के लिए LIKE फ़िल्टर के साथ COUNT() और GROUP BY का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1854 (Name VARCHAR(20)); डेटा डालें mysql> INSERT INTO DemoTable1854 VALUES(John-Smith); mysql> I

  1. - MySQL में कॉमा-सेपरेटेड मान वाले कॉलम में विशिष्ट संख्या खोजकर रिकॉर्ड चुनें

    CONCAT() + LIKE कॉमा सेपरेटेड स्ट्रिंग में सटीक संख्या मिलान के लिए: select * from yourTableName where concat(,, yourColumnName, ,) like %,yourValue,%; उदाहरण insert into demo49 values(4,5,6,Adam), (5,3,2,Mike), (3,4,9,Bob); संख्या 4 खोजना select * from demo49 where concat(,, id, ,) like %,4,%;

  1. - MySQL REGEXP: विशिष्ट संख्या से शुरू होने वाले स्ट्रिंग+नंबर रिकॉर्ड प्राप्त करें

    REGEXP पैटर्न Select yourColumnName1, yourColumnName2 from yourTableName where yourColumnName2 REGEXP ^yourStringValue[yourNumericValue]; उदाहरण: John से शुरू और फिर 5 या 6 insert into demo45(value) values(John500), (John1500), (John5500), (John6500), (John8600); क्वेरी: ^John[56] select id,val