आप SUBSTRING_INDEX का उपयोग कर सकते हैं दो बार, दूसरा -1 पैरामीटर वाला:
SELECT
'aaaaa, bbbbb, ccccc',
SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 1) AS column_one,
SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2), ',', -1) AS column_two,
SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 3), ',', -1) AS column_three
यदि पैरामीटर नकारात्मक है, तो अंतिम सीमांकक (दाईं ओर से गिनती) के दाईं ओर सब कुछ वापस कर दिया जाता है। उदा.
SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2)
वापस आ जाएगाaaaaa, bbbbb
SUBSTRING_INDEX(
आआआ, बीबीबीबीबी, ',', -1)
फिरbbbbb
लौटाएगा
आप ',' को एक सीमांकक, या ट्रिम परिणाम।
कृपया फिडल देखें यहां ।
संपादित करें
यदि आप उन स्ट्रिंग्स पर विचार करना चाहते हैं जिनमें तीन से कम मान हो सकते हैं, तो आप कुछ इस तरह का उपयोग कर सकते हैं:
SELECT
s,
SUBSTRING_INDEX(s, ',', 1) AS column_one,
CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>0
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 2), ',', -1)
ELSE NULL END AS column_two,
CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>1
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 3), ',', -1)
ELSE NULL END AS column_three
FROM
strings
कृपया फिडल देखें यहां ।