Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Ralat 'SENARAI PILIH MySQL tiada dalam klausa GROUP BY'?

Bagaimana untuk Menyelesaikan Ralat 'SENARAI PILIH MySQL tiada dalam klausa GROUP BY'?

DDD
Lepaskan: 2024-12-22 16:40:13
asal
246 orang telah melayarinya

How to Resolve MySQL's

Menyelesaikan masalah "SENARAI PILIH tiada dalam klausa KUMPULAN OLEH" Ralat dengan MySQL

Ralat "Ungkapan #1 senarai SELECT tiada dalam KUMPULAN OLEH klausa dan mengandungi lajur tanpa agregat" biasanya berlaku dalam MySQL apabila hasil pertanyaan mengandungi lajur bukan agregat yang tidak termasuk dalam klausa GROUP BY. Ini disebabkan oleh tetapan sql_mode=only_full_group_by, yang menguatkuasakan peraturan pengelompokan yang lebih ketat.

Untuk menangani isu ini, terdapat beberapa penyelesaian:

  1. Lumpuhkan sql_mode=only_full_group_by: 🎜> Ini boleh dilakukan dengan perkara berikut arahan:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Salin selepas log masuk
  1. Sertakan semua lajur yang dipilih dalam klausa KUMPULAN OLEH: Ini memastikan semua lajur dalam senarai PILIH disertakan dalam operasi GROUP BY. Contohnya:
SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`, `id`
Salin selepas log masuk
  1. Gunakan fungsi pengagregatan: Daripada memilih lajur individu, gunakan fungsi pengagregatan seperti SUM(), COUNT(), atau AVG( ) untuk mengumpulkan data. Ini menghapuskan keperluan untuk klausa GROUP BY. Contohnya:
SELECT `proof_type`, COUNT(*) AS `document_count`
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`
Salin selepas log masuk
Adalah penting untuk ambil perhatian bahawa menukar mod SQL bukanlah amalan terbaik. Penyelesaian pilihan ialah mengubah suai pertanyaan untuk mematuhi peraturan pengelompokan yang lebih ketat.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'SENARAI PILIH MySQL tiada dalam klausa GROUP BY'?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan