यदि आप सभी संभावित मानों के लिए पूर्ण छँटाई चाहते हैं:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")
यदि आप केवल इस बात की परवाह करते हैं कि "कोर" पहले है और अन्य मान मायने नहीं रखते:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC
यदि आप पहले "कोर" और अन्य क्षेत्रों को सामान्य क्रम में क्रमबद्ध करना चाहते हैं:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority
हालांकि, यहां कुछ चेतावनी हैं:
सबसे पहले, मुझे पूरा यकीन है कि यह mysql-only कार्यक्षमता है - प्रश्न MySQL को टैग किया गया है, लेकिन आप कभी नहीं जानते।
दूसरा, ध्यान दें कि कैसे FIELD()
काम करता है:यह एक-आधारित अनुक्रमणिका . देता है मान का - FIELD(प्राथमिकता, "कोर")
. के मामले में , यह 1 लौटाएगा यदि "कोर" मान है। यदि फ़ील्ड का मान सूची में नहीं है, तो यह शून्य लौटाता है . यही कारण है कि DESC
आवश्यक है जब तक कि आप सभी संभावित मान निर्दिष्ट न करें।