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,35 | 5 | 4 | 1 | 1 |
| 45,67,89 | 8 | 6 | 2 | 2 |
| 90,97,101,190 | 12 | 9 | 3 | 3 |
सामान्यीकरण: किसी भी विभाजक के लिए
-- सेमीकोलन के लिए 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;