एक MySQL फ़ंक्शन MySQL में पंक्तियों या पंक्तियों के सेट को वापस नहीं कर सकता है। केवल एक संग्रहीत प्रक्रिया पंक्तियों को वापस कर सकती है। यह MySQL 5.4 तक और इसमें शामिल है। देखें सीमाएं पृष्ठ। तालिकाओं के रूप में संग्रहीत कार्यविधियों का उपयोग या जहां क्वेरी में क्लॉज मान भी अनुपलब्ध हैं।
यदि आपको किसी फ़ंक्शन का उपयोग करने की आवश्यकता है तो आप सबसे अच्छा कर सकते हैं GROUP_CONCAT का उपयोग मूल्यों को अल्पविराम से अलग सूची में प्राप्त करने के लिए:
CREATE FUNCTION getuids() RETURNS VARCHAR(1024)
BEGIN
SELECT GROUP_CONCAT(uid SEPARATOR ',') INTO @uid_list FROM pages WHERE deleted = 0;
RETURN @uid_list;
END
फिर अपने चयन कथन में जिसे यूआईडी की जांच करने की आवश्यकता है, आप इस तरह FIND_IN_SET फ़ंक्शन का उपयोग कर सकते हैं:
SELECT ... WHERE FIND_IN_SET(my_field, get_uids());
पी.एस. मैंने मूल रूप से MySQL वेबसाइट पर GROUP_CONCAT और FIND_IN_SET फ़ंक्शंस के लिंक पोस्ट किए थे, लेकिन स्टैक ओवरफ़्लो मुझे केवल एक लिंक का उपयोग करने देगा। नए होने के लिए याय।