php - MySQL Limiting a query to one consistent value -


मेरी वर्तमान क्वेरी इस तरह एक तालिका लौटाई:

  + ------- ----- + value1 | .... मान 1 | .... मान 2 | .... मान 3 | .... + ------------ +  

मुझे चाहिए:

  + ------- ----- + value1 | .... मान 1 | .... + ------------ +  

मैं केवल पहले मूल्य के साथ सभी पंक्तियां प्राप्त करना चाहता हूं। आम तौर पर मैं एक WHERE क्लॉज करूँगा अगर मुझे वह मूल्य पता था, और मैं एक सीमा का उपयोग नहीं कर सकता क्योंकि प्रत्येक मान में एक अलग पंक्तियाँ हैं।

अभी मेरी क्वेरी दिखती है:

  SELECT u। *, N.Something, w * FROM ... AS u, ... AS n, ... ASW WHERE u.id = n.id और w.val = n.val और यूएडीएससी की तरह '% VERIABLE% अनुरोध प्राप्त करें'  

यह बहुत अच्छा काम करता है, सिवाय मेरे पास बहुत सी पंक्तियां हैं और PHP का प्रयोग इस खंड को कोड पोर्टेबिलिटी करने और ज़रूरत से ज़्यादा नहीं है।

निश्चित नहीं है, लेकिन मुझे लगता है कि आप इसे इसके साथ प्राप्त कर सकते हैं:

  चुनें u। *, N.Something, w * FROM ... के रूप में यू JOIN ... के रूप में एन.यू.आईडी = एन.आईडी जोड़ें ... w.val = n.val पर w के रूप में जोड़ें (SELECT col से ... एएस यू 2 WHERE u2.desc LIKE? LIMIT 1) यू 2 पर यू 2.col = u.col  

जहां ... में आंतरिक SELECT समान कोड है जिसे u से पहले रखा गया है।

संपादित करें: एक और बात: मुझे लगता है डी कर्नल अलग अलग desc मानों के लिए अलग है; यदि नहीं, तो आपको WHERE को बाहरी SELECT में भी दोहराना होगा।

(यदि आप तैयार बयान से परिचित नहीं हैं, कोड>? है, जहां आपका '% ...%' जायेगा ... और इसे से बचने के लिए मत भूलना; अगर आप निश्चित रूप से, लाइब्रेरी करेंगे तो यह आपके लिए :))


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -