आप जिस वर्ण को गिनना चाहते हैं, उसके साथ और उसके बिना स्ट्रिंग की लंबाई की तुलना कर सकते हैं।
समाधान LENGTHका उपयोग करके कोड>
-- 0 in 10090: 3
-- 0 in 10000: 4
SELECT
(LENGTH(number) - LENGTH(REPLACE(number, '0', ''))) AS char_count
FROM dual;
एक बेहतर और सुरक्षित समाधान का उपयोग करना है। CHAR_LENGTH
LENGTH
समारोह। CHAR_LENGTH
के साथ
फ़ंक्शन आप मल्टी-बाइट वर्णों को भी गिन सकते हैं (जैसे §
)।
समाधान CHAR_LENGTH का उपयोग करके
-- § in 100§0: 1
SELECT
(CHAR_LENGTH(number) - CHAR_LENGTH(REPLACE(number, '§', ''))) AS char_count
FROM dual;
आप एकाधिक वर्णों का उपयोग करके एक स्ट्रिंग मान की गणना करने के लिए उपरोक्त समाधान का विस्तार भी कर सकते हैं।
-- 12 in 10120012: 2
SELECT number,
FLOOR((CHAR_LENGTH(number) - CHAR_LENGTH(REPLACE(number, '12', ''))) / CHAR_LENGTH('12')) AS str_count
FROM dual;
MySQL पर आप एक फंक्शन बना सकते हैं उपरोक्त तर्क का सरल तरीके से उपयोग करने के लिए:
CREATE FUNCTION GetStringCount(strValue VARCHAR(255), strSearchValue VARCHAR(255))
RETURNS INT DETERMINISTIC NO SQL
RETURN FLOOR((CHAR_LENGTH(strValue) - CHAR_LENGTH(REPLACE(strValue, strSearchValue, ''))) / CHAR_LENGTH(strSearchValue));
आप इस नए फ़ंक्शन का उपयोग कर सकते हैं GetStringCount
इस तरह:
-- example to count non-multi-byte character (here 0).
-- 0 in 10090: 3
-- 0 in 10000: 4
SELECT number, GetStringCount(number, '0') AS strCount
FROM dual;
-- example to count multi-byte character (here §).
-- § in 100§0: 1
SELECT number, GetStringCount(number, '§') AS strCount
FROM dual;
-- example to count a string with multiple characters.
-- 12 in 10120012: 2
SELECT number, GetStringCount(number, '12') AS strCount
FROM dual;