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

MySQL में LENGTH() और REPLACE() का उपयोग करके कॉमा-पृथक मान कॉलम में कॉमा की गिनती करना

MySQL में CSV कॉलम में विभाजक गिनना

कॉमा-पृथक मान (CSV) कॉलम में कॉमा की संख्या गिनने के लिए, मूल स्ट्रिंग की लंबाई की तुलना कॉमा हटाने के बाद की लंबाई से करें। अंतर कॉमा की संख्या देता है।

उदाहरण: प्रत्येक रिकॉर्ड में कॉमा गिनना

पहले एक CSV मान टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable1510 (
    -> Value VARCHAR(50)
    -> );
Query OK, 0 rows affected (6.75 sec)

mysql> INSERT INTO DemoTable1510 VALUES
    -> ('20,35'), ('45,67,89'), ('90,97,101,190');
Query OK, 3 rows affected (0.57 sec)

mysql> SELECT * FROM DemoTable1510;
+---------------+
| Value         |
+---------------+
| 20,35         |
| 45,67,89      |
| 90,97,101,190 |
+---------------+
3 rows in set (0.00 sec)

कॉमा गिनती क्वेरी

mysql> SELECT LENGTH(Value) - LENGTH(REPLACE(Value, ',', '')) AS NumberOfComma
    -> FROM DemoTable1510;

परिणाम

+---------------+
| NumberOfComma |
+---------------+
|             1 |
|             2 |
|             3 |
+---------------+
3 rows in set (0.00 sec)

तर्क समझाया गया

मानLENGTH(मान)LENGTH(REPLACE(मान, ',', ''))अंतरकॉमा गिनती
20,355411
45,67,898622
90,97,101,19012933

सामान्यीकरण: किसी भी विभाजक के लिए

-- सेमीकोलन के लिए
SELECT LENGTH(Value) - LENGTH(REPLACE(Value, ';', '')) AS SemiColonCount
FROM DemoTable1510;

-- पाइप के लिए
SELECT LENGTH(Value) - LENGTH(REPLACE(Value, '|', '')) AS PipeCount
FROM DemoTable1510;

आइटम गिनना (कॉमा + 1)

SELECT LENGTH(Value) - LENGTH(REPLACE(Value, ',', '')) + 1 AS ItemCount
FROM DemoTable1510;
  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(

  1. - MySQL में विशिष्ट मान वाले कॉलम की संख्या कैसे गिनें?

    SUM() के साथ गणना बाइनरी मान (0/1) वाले कॉलम के लिए: select sum(value1+value2+value3) as `Total_Number_Of_1`, sum(value1 and value2 and value3) as `Total_Number_Of_Rows_With_1` from yourTableName; उदाहरण insert into demo36(value1,value2,value3) values(1,0,0), (1,0,1), (1,1,1), (0,1,0), (

  1. - MySQL कॉलम से अधिकतम मान प्राप्त करना

    परिचय MySQL में किसी कॉलम का अधिकतम मान प्राप्त करने के लिए MAX() एग्रीगेट फंक्शन या ORDER BY ... DESC LIMIT 1 का उपयोग किया जा सकता है। टेबल निर्माण और डेटा सम्मिलन insert into DemoTable values(58); Query OK, 1 row affected (0.25 sec) सभी रिकॉर्ड प्रदर्शित करना select * from DemoTable; +-------