मेरे लिए माइंड बर्निंग क्वेरी। मैं दो उम्र की स्थिति के बीच सभी रिकॉर्ड लाना चाहता हूं। कोई भी कृपया मेरी मदद करें। मेरी क्वेरी नीचे लिख रही है

SELECT tbl_trip.* FROM tbl_trip  WHERE  ((tbl_trip.minage >= '15' AND tbl_trip.maxage <= '15') OR (tbl_trip.maxage <= '28' AND tbl_trip.minage >= '28')) 

इस प्रश्न में मुझे डेटाबेस से सभी रिकॉर्ड चाहिए .. जहां उम्र 15 से 28 के बीच है। इसमें सभी रिकॉर्ड मिलते हैं, उदा. न्यूनतम से अधिकतम: 1 से 16,12 से 30, 16 से 24, 27 से 28 लेकिन 3 से 13 या 29 या 100 की तरह नहीं मिलता। अग्रिम में धन्यवाद।

1
Kumar Rakesh 12 अगस्त 2016, 12:10

3 जवाब

सबसे बढ़िया उत्तर

यह क्वेरी आपकी दी गई सीमा को minage और maxage, और इसके विपरीत के बीच जांचती है।

select * from tbl_trip 
where (((minage>=15 and minage<=22) or (maxage>=15 and maxage<=22))
or((15>=minage and 15<=maxage) or (22<=maxage and 22>=minage)))

यह भी काम कर रहा है, कृपया उपयोग करने से पहले इसे ठीक से जांचें:

select * from tbl_trip 
where ((minage>=12 and minage<=22) or (maxage>=12 and maxage<=22))
       or ((12>=minage and 22<=maxage))

यह रहा दूसरा तरीका:

select * from tbl_trip
Where GREATEST(GREATEST(minage,12)-LEAST(maxage,22),0)=0
1
Kumar Rakesh 8 फरवरी 2017, 15:23

यहाँ रोहित ने भ्रमित करने वाली क्वेरी लिखने का सही तरीका दिया है।

select * from tbl_trip where ((minage>=12 and minage<=22) or (maxage>=12 and maxage<=22)) or ((minage<=12 and maxage>=22))

धन्यवाद

3
Kumar Rakesh 8 फरवरी 2017, 15:22

इसके साथ प्रयास करें, यह मेरे लिए ठीक काम कर रहा है

select * from tbl_trip
Where GREATEST(GREATEST(minage,12)-LEAST(maxage,22),0)=0
2
Robin Singh 25 अगस्त 2016, 12:41