इसके लिए कोई मूल कार्य नहीं है। आप दो 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
से बड़ा है