एक इंडेक्स का उपयोग OR पर नहीं किया जा सकता है। इसे आजमाएं:
SELECT * FROM table WHERE Due_Amount > 0
UNION ALL
SELECT * FROM table Bounced_Due_Amount > 0
--use "UNION" if Due_Amount and Bounced_Due_Amount could both >0 at any one time
एक इंडेक्स ड्यू_अमाउंट पर है और दूसरा बाउंस_ड्यू_अमाउंट पर है।
अपनी तालिका को फिर से डिज़ाइन करना बेहतर हो सकता है। आपके व्यावसायिक तर्क या तालिका को जाने बिना, मुझे लगता है कि आपके पास "बाउंस" वाई/एन या 1/0 चार/बिट कॉलम और केवल "ड्यू_एमाउंट" कॉलम हो सकता है। उस "ड्यू_अमाउंट" पर एक इंडेक्स जोड़ें और क्वेरी बस होगी:
SELECT * FROM table WHERE Due_Amount > 0
आप अभी भी बाउंस या नहीं पंक्ति के बीच अंतर कर सकते हैं। यदि आपको एक ही समय में बाउंस और गैर-बाउंस देय राशि दोनों की आवश्यकता है तो यह काम नहीं करेगा।