ปิดโหมด ONLY FULL GROUP BY ใน MySQL


ใน MySQL Version ใหม่ๆ น่าจะตั้งแต่เวอร์ชั่น 5.7.5 ขึ้นมา จะเปิด sql_mode เป็น only_full_group_by มาเป็นค่า Default ไว้เลย

ทำให้คนที่เคยใช้การ Group by แบบหลายๆ Table ด้วยตัวหลักตัวเดียว จะทำให้เกิด Error แบบนี้ครับ

ซึ่งปัญหามันเกิดจากการเขียน JOIN กันไปหลายๆ Table แต่สั่ง Group by แค่ฟิลด์จากตารางเดียว ตอนนี้เหมือนจะทำไม่ได้แล้ว ต้องสั่ง Group by คีย์หลักจากทุกตารางที่ทำการ JOIN ด้วย

แต่ถ้าใครยังไม่อยากแก้โค้ดตอนนี้ การสั่งปิด Mode ตัวนี้ก็น่าจะง่ายกว่า…

ปิดโหมดใน PhpMyAdmin

เมื่อเข้ามาแล้ว ในหน้าแรกให้เลือกไปที่เมนู Variables

แล้วทำการค้นหาอย่างรวดเร็วด้วยคำว่า sql_mode


ในช่อง Value ก็จะเห็นแล้วว่ามันมีคำว่า ONLY_FULL_GROUP_BY อยู่ และเราควรจะเอามันออก กด Edit กันเลย

เมื่อกด Edit แล้วก็ทำการลบค่า ONLY_FULL_GROUP_BY ทิ้งเลย

จากนั้นกด Save ก็เสร็จแล้วจ้า

ตอนนี้พอไปรันหน้าเว็บของเราก็จะเห็นว่ามันไม่ฟ้อง Error sql_mode=in_full_group_by แล้ว

Leave a Reply

Please Login to comment
avatar
  Subscribe  
Notify of
Navigate