Rumah > pangkalan data > tutorial mysql > Bagaimana untuk memperbaiki ralat 'Only_Full_Group_By' MySQL dalam pertanyaan?

Bagaimana untuk memperbaiki ralat 'Only_Full_Group_By' MySQL dalam pertanyaan?

Patricia Arquette
Lepaskan: 2025-01-25 03:06:08
asal
539 orang telah melayarinya

How to Fix MySQL's

MySQL "only_full_group_by" penyelesaian masalah dan penyelesaian ralat

MySQL versi 5.7 memperkenalkan mod SQL "only_full_group_by" , menyebabkan beberapa pernyataan pertanyaan yang sebelum ini berjalan secara normal untuk melaporkan ralat. Ralat ini berlaku apabila senarai SELECT mengandungi lajur bukan agregat yang tidak disenaraikan dalam klausa GROUP BY dan tidak mempunyai kebergantungan fungsi pada lajur dalam klausa GROUP BY.

Penyelesaian adalah dengan menambah lajur group_id pada klausa KUMPULAN OLEH supaya pernyataan pertanyaan mematuhi mod "hanya_kumpulan_penuh_mengikut". Ini memastikan bahawa terdapat hanya satu baris hasil untuk setiap kombinasi group_id dan group_name yang berbeza.

Amalan terbaik ialah melayakkan semua lajur dengan nama jadual atau alias, terutamanya apabila bekerja dengan berbilang jadual. Ini membantu mengelakkan kekaburan dan memastikan data yang diperlukan dipilih.

Berikut ialah pernyataan pertanyaan yang diubah suai, yang boleh dilaksanakan seperti biasa dalam mod "hanya_kumpulan_penuh_oleh":

<code class="language-sql">SELECT 
  g.group_id AS 'value', 
  g.group_name AS 'text' 
FROM mod_users_groups g
LEFT JOIN mod_users_data d ON g.group_id = d.group_id 
WHERE g.active = 1 
  AND g.department_id = 1 
  AND g.manage_work_orders = 1 
  AND g.group_name != 'root' 
  AND g.group_name != 'superuser' 
GROUP BY 
  g.group_id, 
  g.group_name
HAVING COUNT(d.user_id) > 0 
ORDER BY g.group_name</code>
Salin selepas log masuk

Tidak disyorkan untuk melumpuhkan mod "only_full_group_by" kerana ia membantu memastikan integriti dan ketepatan data. Dengan memaksa kemasukan lajur tidak teragregat dalam klausa GROUP BY, MySQL boleh memastikan bahawa keputusan adalah tepat dan mencerminkan data terkumpul yang dijangkakan.

Atas ialah kandungan terperinci Bagaimana untuk memperbaiki ralat 'Only_Full_Group_By' MySQL dalam pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan