Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'SENARAI PILIH Tidak Serasi dengan GROUP BY' MySQL?

Bagaimana untuk Membetulkan Ralat 'SENARAI PILIH Tidak Serasi dengan GROUP BY' MySQL?

Barbara Streisand
Barbara Streisandasal
2025-01-04 12:20:36172semak imbas

How to Fix MySQL's

Menyelesaikan "Senarai PILIH Tidak Serasi dengan GROUP BY" Ralat dengan SQL_MODE

Mesej ralat MySQL:

Ungkapan #1 daripada Senarai SELECT tiada dalam klausa GROUP BY dan mengandungi lajur tanpa agregat 'returntr_prod.tbl_customer_pod_uploads.id' yang tidak bergantung pada lajur dalam klausa GROUP BY; ini tidak serasi dengan sql_mode=only_full_group_by

menunjukkan bahawa senarai SELECT mengandungi lajur bukan agregat yang tiada dalam klausa GROUP BY. Ralat ini berlaku apabila menggunakan mod SQL only_full_group_by MySQL.

Penyelesaian Potensi:

  • Tukar Mod SQL:

Anda boleh melumpuhkan mod only_full_group_by buat sementara waktu dengan melaksanakan perkara berikut arahan:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
  • Ubah Suai Pertanyaan:

Sebagai alternatif, anda boleh mengubah suai pertanyaan anda untuk memasukkan semua lajur daripada senarai PILIH dalam KUMPULAN MENGIKUT klausa:

SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `load_id`, `bill_id`, `latitude`, `langitude`, `proof_type`, `document_type`, `file_name`, `is_private`, `status`, `createdon`, `updatedon`
  • Gunakan Pengagregat Fungsi:

Untuk amalan terbaik dalam Bahasa Pertanyaan Berstruktur, elakkan daripada memilih semua lajur. Sebaliknya, gunakan fungsi agregator pada lajur pengumpulan, seperti:

SELECT MAX(`id`) AS `id`,
       COUNT(*) AS `total_rows`
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `load_id`

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'SENARAI PILIH Tidak Serasi dengan GROUP BY' MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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