पोस्टग्रेज में 9.4 या बाद में, यह सरल और तेज़ है :
SELECT c.*
FROM comments c
JOIN unnest('{1,3,2,4}'::int[]) WITH ORDINALITY t(id, ord) USING (id)
ORDER BY t.ord;
-
WITH ORDINALITY
पोस्टग्रेज 9.4 में पेश किया गया था। -
सबक्वेरी की कोई आवश्यकता नहीं है, हम सीधे टेबल की तरह सेट-रिटर्निंग फ़ंक्शन का उपयोग कर सकते हैं। (उर्फ "टेबल-फ़ंक्शन"।)
-
ARRAY कंस्ट्रक्टर के बजाय सरणी में हाथ लगाने के लिए एक स्ट्रिंग शाब्दिक कुछ क्लाइंट के साथ लागू करना आसान हो सकता है।
-
सुविधा के लिए (वैकल्पिक रूप से), उस कॉलम नाम को कॉपी करें जिसमें हम शामिल हो रहे हैं (
id
उदाहरण में), इसलिए हम एक संक्षिप्तUSING
. के साथ जुड़ सकते हैं परिणाम में शामिल होने वाले कॉलम का केवल एक उदाहरण प्राप्त करने के लिए क्लॉज। -
किसी भी . के साथ काम करता है निवेष का प्रकार। यदि आपका कुंजी कॉलम
text
. प्रकार का है , कुछ ऐसा प्रदान करें जैसे'{foo,bar,baz}'::text[]
।
विस्तृत विवरण:
- तत्व संख्या के साथ PostgreSQL unnest()