यह वही है जो इस प्रश्न में पूछा गया था:क्या मैं किसी सरणी को IN() स्थिति से बाँध सकता हूँ?
इसका उत्तर यह था कि, in
. में एक चर आकार की सूची के लिए खंड, आपको क्वेरी स्वयं बनानी होगी।
हालांकि, आप find_in_set
, हालांकि बड़े डेटा सेट के लिए, इसका प्रदर्शन पर काफी प्रभाव पड़ेगा, क्योंकि तालिका के प्रत्येक मान को एक चार प्रकार में डालना होगा।
उदाहरण के लिए:
select users.id
from users
join products
on products.user_id = users.id
where find_in_set(cast(products.id as char), :products)
या, तीसरे विकल्प के रूप में, आप एक उपयोगकर्ता परिभाषित फ़ंक्शन बना सकते हैं जो आपके लिए अल्पविराम से अलग सूची को विभाजित करता है (cf. http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated-string-ids /
) यह शायद तीनों में से सबसे अच्छा विकल्प है, खासकर यदि आपके पास बहुत सारे प्रश्न हैं जो in(...)
पर निर्भर हैं। खंड।