आपको एक पूर्ण टेबल स्कैन करना होगा, इसलिए शायद यह सबसे अच्छा समाधान है:
select (case when id in (< your list >) then 'in' else 'out' end) as inlist,
my_boolean_field, count(*)
from mytable t
group by (case when id in (< your list >) then 'in' else out' end),
my_boolean_field;
अगर आपकी सूची इंडेक्स वाली टेबल में है, तो आप left join
. का इस्तेमाल कर सकते हैं इस पर। हालांकि, MySQL in
के लिए खोजों को अनुकूलित करता है निरंतर मूल्यों के साथ (यह एक द्विआधारी खोज का उपयोग करता है)। तो यह सबसे तेज़ तरीका होने की संभावना है।