Laravel Eloquent में SQL_MODE=ONLY_FULL_GROUP_BY संघर्ष को हल करना
समूह-दर-क्वेरी करने के लिए Eloquent का उपयोग करते समय, आपको संबंधित त्रुटि का सामना करना पड़ सकता है sql_mode=only_full_group_by के लिए असंगत सेटिंग्स। यह त्रुटि तब हो सकती है जब गैर-एकत्रित कॉलम SELECT सूची में शामिल होते हैं जो ग्रुप बाय क्लॉज का हिस्सा नहीं हैं।
इस समस्या को हल करने के लिए, आप अपने डेटाबेस में निम्नलिखित सेट करके सख्त MySQL मोड को अक्षम कर सकते हैं कॉन्फ़िगरेशन फ़ाइल:
'connections' => [ 'mysql' => [ 'strict' => false, ] ]
'सख्त' को गलत पर सेट करके, आप MySQL को ऐसा व्यवहार करने की अनुमति दे रहे हैं जैसे कि वह MySQL 5.6 मोड में चल रहा हो, जो sql_mode=only_full_group_by द्वारा लगाए गए सख्त ग्रुपिंग नियमों को लागू नहीं करता है।
वैकल्पिक रूप से, आप यह सुनिश्चित करने के लिए अपनी एलोक्वेंट क्वेरी को संशोधित कर सकते हैं कि चयन सूची में सभी कॉलम या तो एकत्रित हैं या ग्रुप बाय क्लॉज में शामिल हैं। उदाहरण के लिए, आप आवश्यक एकत्रीकरण जोड़ने के लिए 'कच्ची' विधि का उपयोग कर सकते हैं:
$products = Product::where('status', 1) ->where('stock', '>', 0) ->where('category_id', '=', $category_id) ->groupBy('store_id') ->orderBy('updated_at', 'desc') ->selectRaw('*, COUNT(*) AS total_products') ->take(4) ->get();
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3