में किया गया यह त्रुटि पूरे स्रोत को 5.3 संस्करण में ले जाने के बाद आई, और मैं अपने सिर को दो घंटे से अधिक समय तक खरोंच कर रहा हूं अभी व।लैरवेल 5.3: सिंटेक्स त्रुटि या पहुंच उल्लंघन: 1463 गैर-समूह फ़ील्ड 'दूरी' का उपयोग हैविंग क्लॉज
POI::select('*', DB::raw("SQRT(POW((x - {$this->x}),2) + POW((y - {$this->y}),2)) AS distance"))
->where('status', Config::get('app.poi_state.enabled'))
->whereNotIn('id', $excludePOIList)
->having('distance', '<=', $distance)
->orderBy('distance')->get();
यह काम करने से पहले अभी नवीनीकरण फेंक देता है लगता है:
सिंटेक्स त्रुटि या पहुँच उल्लंघन: 1463 गैर समूहीकरण क्षेत्र 'दूरी'
तो मैं वाक्पटु क्वेरी इस तरह का है हैविंग क्लॉज में उपयोग किया जाता है (एसक्यूएल: चयन करें *, एसक्यूआरटी (पाउ ((एक्स - 860.0000), 2) + पाउ ((वाई - 105.0000), 2))
poi
से दूरी के रूप में जहांstatus
= 1 औरid
नहीं (1)distance
< = 6 आदेश द्वाराdistance
एएससी)
मैं अगर ONLY_FULL_GROUP_BY मोड अपने सर्वर पर सक्षम है की जाँच करना चाहते थे, लेकिन ऐसा नहीं है ...
चयन @@ sql_mode NO_ENGINE_SUBSTITUTION
MySQL वर्कबेंच में एक ही क्वेरी ठीक काम करती है। क्या चल रहा है?
यह था, जाहिर है कि सख्त मोड एल 5.3 – user3343366
में डिफ़ॉल्ट रूप से सक्षम है, लेकिन इस 'सख्त' विकल्प के बारे में कोई स्पष्टीकरण क्या है और इसका दुष्प्रभाव क्या है? –
सख्त मोड नियंत्रित करता है कि कैसे MySQL डेटा-चेंज स्टेटमेंट्स जैसे INSERT या UPDATE में अमान्य या अनुपलब्ध मानों को संभालता है। कई कारणों से एक मूल्य अमान्य हो सकता है। उदाहरण के लिए, इसमें कॉलम के लिए गलत डेटा प्रकार हो सकता है, या यह सीमा से बाहर हो सकता है। एक नई पंक्ति डालने पर एक मान गुम होता है जिसमें गैर-नूल कॉलम के लिए कोई मान नहीं होता है जिसमें इसकी परिभाषा में कोई स्पष्ट DEFAULT क्लॉज नहीं होता है। (एक पूर्ण कॉलम के लिए, यदि मूल्य गुम है तो NULL डाला जाता है।) सख्त मोड भी तालिका बनाने जैसे डीडीएल स्टेटमेंट को प्रभावित करता है। https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict – Chintan7027