मैं एक विशिष्ट आईडी (53) प्राप्त करने का प्रयास कर रहा हूं ताकि मेरा डेटा पुनर्प्राप्त करते समय पहले क्रम में हो और उस क्रम के बाद title वर्णानुक्रम में। मुझे यहां कुछ उत्तर मिले लेकिन कोई भी ऐसा नहीं था जिसकी मुझे तलाश थी।

वर्तमान में यह मेरी क्वेरी है:

SELECT * 
FROM snm_categories 
WHERE parent_id = ".$conn->real_escape_string($getcat['id'])." 
AND published = 1  
ORDER BY CASE WHEN id = 53 THEN 0 ELSE 1 END, id, title

यह आईडी 53 के साथ पहला परिणाम सही ढंग से दिखाता है लेकिन शेष वस्तुओं को वर्णानुक्रम में title द्वारा क्रमबद्ध नहीं किया जाता है। मैं वह कैसे कर सकता हूं?

0
twan 16 जुलाई 2019, 11:52

2 जवाब

सबसे बढ़िया उत्तर
ORDER BY CASE WHEN id = 53 THEN 0 ELSE 1 END, title, id, 

आपको खेतों का क्रम बदलना होगा। आप id कॉलम से पहले टाइटल कॉलम पहले लिखें। यह मायने रखती है।

1
dodzb 16 जुलाई 2019, 11:58

MySQL बूलियन मानों को संख्याओं के रूप में मानता है, सत्य के लिए "1" और असत्य के लिए "0"।

तो, आप तर्क को सरल बना सकते हैं:

ORDER BY (id = 53) DESC, title, id
1
Gordon Linoff 16 जुलाई 2019, 14:10