कुछ परीक्षण और त्रुटि के बाद मैं निम्नलिखित क्वेरी के साथ आया जो मुझे चाहिए। मूल रूप से मैं स्ट्रिंग के अंत से संख्याओं को अलग करता हूं और फिर अगले नंबर को अलग करने से पहले उन कई वर्णों को हटा देता हूं। संस्करण 1 कॉलम सकारात्मक 2 अंकों की संख्या तक सीमित है, लेकिन यह एक सीमा है जिसके साथ मैं अपने मामले में रह सकता हूं।
SELECT
IF(CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL) > 0,
CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL),
CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),1) AS DECIMAL)) AS version1,
SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -2)) - 1), '.', -1) as version2,
SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -1)) - 1), '.', -1) as version3,
SUBSTRING_INDEX(version, '.', -1) as version4
FROM Version
HAVING version1 >= 5
;