मैं निम्न क्वेरी के साथ एक समस्या हो रहा है (यदि यह एक नकली सवाल तो है मैं बहुत माफी चाहता हूँ, लेकिन मैं अभी तक कि मेरी मदद कर सकते कुछ भी नहीं कर पा रहे):mysql group_concat जहां
SELECT d.*, GROUP_CONCAT(g.name ORDER BY g.name SEPARATOR ", ") AS members
FROM table_d AS d LEFT OUTER JOIN table_g AS g ON (d.eventid = g.id)
WHERE members LIKE '%p%';
MySQL स्पष्ट रूप से WHERE खंड में GROUP_CONCAT कॉलम की तुलना को संभाल नहीं सकता है। तो मेरा प्रश्न बहुत आसान है। क्या इसके लिए कोई कामकाज है, उप-क्वेरी या कुछ समान उपयोग करने की तरह? मुझे वास्तव में कोड के इस टुकड़े को काम करने की ज़रूरत है और वास्तव में क्वेरी में इसे संभालने के अलावा अन्य उपयोग करने का कोई विकल्प नहीं है।
संपादित करें 1:
मैं वास्तविक कोड नहीं दिखाया जाएगा के रूप में इस गोपनीय हो सकता है, मैं अपने साथियों के साथ जांच करने के लिए होगा। वैसे भी, मैंने यह कोड आपको इस तरह लिखा है कि कथन कैसा दिखता है, हालांकि मैं आपके साथ सहमत हूं कि यह बहुत समझ में नहीं आता है। मैं एक मिनट में नीचे दिए गए उत्तरों की जांच करने जा रहा हूं, फिर मैं आपके पास वापस आऊंगा। पहले से ही सभी मदद के लिए thnx!
संपादित करें 2:
HAVING
का उपयोग कर की कोशिश की, लेकिन यह है कि केवल काम करता है जब मैं GROUP BY
का उपयोग नहीं कर रहा हूँ। जब मैं इसे आज़माता हूं, तो यह मुझे एक वाक्यविन्यास त्रुटि देता है, लेकिन जब मैं GROUP BY
हटाता हूं तो क्वेरी पूरी तरह से काम करती है। बात यह है कि, मुझे GROUP BY
की आवश्यकता है अन्यथा क्वेरी मेरे लिए व्यर्थ होगी।
संपादित करें 3:
ठीक है, तो मैं एक बेवकूफ गलती की है और GROUP BY
, जो स्पष्ट रूप से काम नहीं करता है से पहले HAVING
डाल दिया। सभी मदद के लिए धन्यवाद, यह अब काम करता है!
क्या ' '% पीटर%'' तरह g.name साथ गलत क्या है? – ajreal