2010-10-19 8 views
14

मैं MySQL तालिका में color स्तंभ प्रकार ENUM('RED', 'YELLOW', 'MY_COLOR', 'BLACK') है जो, और एक अन्य name स्तंभ प्रकार VARCHAR(30) है जो की है।MySQL डेटाबेस में ENUM कॉलम को सॉर्ट करने के लिए कैसे करें?

मैं इस क्रम में सभी तालिका पंक्तियों प्राप्त करना चाहते हैं:, अन्य सभी पंक्तियों

  • YELLOW पंक्तियां सबसे पहले,
  • RED पंक्तियों पिछले name के अनुसार क्रमबद्ध, name
  • बीच में के अनुसार क्रमबद्ध , name

द्वारा क्रमबद्ध किया गया है क्या इस तरह के प्रकार को 1 क्वेरी में बनाना संभव है?

उत्तर

26

उपयोग:

ORDER BY CASE color 
      WHEN 'YELLOW' THEN 1 
      WHEN 'RED' THEN 3 
      ELSE 2 
     END, name 
+0

बहुत बहुत धन्यवाद !! –

1

यह mysql के साथ ठीक काम करता है। लेकिन एच 2 डीबी के लिए यह एक त्रुटि के कारण होता है: org.h2.jdbc.JdbcSQLException: अभिव्यक्ति द्वारा आदेश "(केस = 'येलो'), 1, केसवेन ((रंग = 'लाल'), 3))" इस मामले में परिणाम सूची में होना चाहिए; SQL विवरण:

से बचने के लिए त्रुटि stmt जोड़ें "CASEWHEN ((color = 'पीला'), 1, CASEWHEN ((color = 'लाल'), 3))" का चयन करें खंड में।

संबंधित मुद्दे