आपको दो कॉलम चाहिए:
- मान के लिए एक, एक फ्लोट/डबल (या एक पूर्णांक) जिसे ऑर्डर किया जा सकता है, जो कि रकम, आदि जैसे संचालन में उपयोग किया जाता है।
- मुद्रा के लिए एक (एक char(3) ISO 4217 मानक का पालन करता है ) अन्य उद्देश्यों के लिए उपयोग किया जाता है (प्रदर्शन, शायद रूपांतरण, आदि)
एक वर्चर के अंदर मूल्य और प्रतीक दोनों को संग्रहीत करना गैर-समझदार है, खासकर जब मुद्रा प्रतीक की स्थिति अलग-अलग देशों में भिन्न होती है (शुरुआत में या अंत में हो सकती है), प्रतीक और मूल्य के बीच एक स्थान हो सकता है, या नहीं, आदि।
कहा जा रहा है, अगर आप अपनी टेबल नहीं बदलना चाहते हैं, तो ऐसा कुछ काम कर सकता है:
ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)