ฉันได้อัพเกรดระบบของฉันและได้ติดตั้ง MySql 5.7.9 ด้วย php สำหรับเว็บแอปพลิเคชันที่ฉันกำลังทำงานอยู่ ฉันมีคิวรีที่สร้างขึ้นแบบไดนามิกและเมื่อทำงานใน MySql เวอร์ชันเก่ามันทำงานได้ดี ตั้งแต่อัปเกรดเป็น 5.7 ฉันได้รับข้อผิดพลาดนี้:
นิพจน์ # 1 ของรายการที่เลือกไม่ได้อยู่ในกลุ่มตามข้อและมีคอลัมน์ที่ไม่รวม 'support_desk.mod_users_groups.gid_id' ซึ่งไม่ได้ขึ้นอยู่กับหน้าที่ของคอลัมน์ในกลุ่มตามข้อ; สิ่งนี้เข้ากันไม่ได้กับ sql_mode = only_full_group_by
หมายเหตุ: หน้าคู่มือสำหรับ MySQL 5.7 ในหัวข้อของโหมด SQL Server
นี่คือแบบสอบถามที่ทำให้ฉันมีปัญหา:
SELECT mod_users_groups.group_id AS 'value',
group_name AS 'text'
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id
WHERE mod_users_groups.active = 1
AND mod_users_groups.department_id = 1
AND mod_users_groups.manage_work_orders = 1
AND group_name != 'root'
AND group_name != 'superuser'
GROUP BY group_name
HAVING COUNT(`user_id`) > 0
ORDER BY group_name
ฉันทำ googling เกี่ยวกับปัญหานี้ แต่ฉันไม่เข้าใจonly_full_group_by
พอที่จะเข้าใจว่าฉันต้องทำอะไรเพื่อแก้ไขแบบสอบถาม ฉันสามารถปิดonly_full_group_by
ตัวเลือกหรือมีสิ่งอื่นที่ฉันต้องทำหรือไม่
แจ้งให้เราทราบหากคุณต้องการข้อมูลเพิ่มเติม
not a GROUP BY expression
" แค่นั้นแหละ พวกเขาก็อาจมีรหัสข้อผิดพลาดเป็นตัวเลขและไม่มีข้อความเลย