इसके लिए कोई मूल कार्य नहीं है। आप दो SUBSTRING_INDEX फ़ंक्शन का उपयोग कर सकते हैं। और आपको यह जांचना होगा कि क्या वह विशिष्ट अनुक्रमणिका आइटम मौजूद है:
SET @string:='1,2,3,4,5';
SET @delimiter:=',';
SET @n:=6;
SELECT
CASE WHEN
CHAR_LENGTH(@string)-CHAR_LENGTH(REPLACE(@string, @delimiter, ''))>=
@n*CHAR_LENGTH(@delimiter)-1
THEN
SUBSTRING_INDEX(SUBSTRING_INDEX(@string, @delimiter, @n), @delimiter, -1)
END;
SUBSTRING_INDEX(@string, @delimiter, @n)स्ट्रिंग से सबस्ट्रिंग लौटाता है@string@n. से पहले@delimiter. की घटनाएं ।SUBSTRING_INDEX( ... , @delimiter, -1)अंतिम सीमांकक के दाईं ओर सब कुछ लौटाता है- आपको जांचना होगा कि क्या सीमांकक
@nमौजूद। हम स्ट्रिंग की लंबाई को सीमांकक से घटा सकते हैं, और स्ट्रिंग को सीमांकक के साथ हटा सकते हैं -REPLACE(@string, @delimiter, '')का उपयोग करके - और देखें कि क्या यह@n*CHAR_LENGTH(@delimiter)-1से बड़ा है