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
Lepaskan: 2025-01-04 12:20:36
asal
208 orang telah melayarinya

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',''));
Salin selepas log masuk
  • 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`
Salin selepas log masuk
  • 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`
Salin selepas log masuk

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