Rumah > pangkalan data > tutorial mysql > Cara Menyelesaikan Ralat MySQL: Senarai PILIH Tidak Serasi dengan SQL_MODE=ONLY_FULL_GROUP_BY?

Cara Menyelesaikan Ralat MySQL: Senarai PILIH Tidak Serasi dengan SQL_MODE=ONLY_FULL_GROUP_BY?

Linda Hamilton
Lepaskan: 2024-12-30 21:54:11
asal
356 orang telah melayarinya

How to Resolve MySQL Error: SELECT List Incompatible with SQL_MODE=ONLY_FULL_GROUP_BY?

Ralat MySQL: Senarai PILIH Tidak Serasi dengan SQL_MODE=ONLY_FULL_GROUP_BY

Apabila melaksanakan pertanyaan yang merangkumi pernyataan SELECT dengan lajur tidak teragregat klausa kumpulan, MySQL mungkin mengembalikan ralat yang menunjukkan bahawa ungkapan itu tidak ada klausa GROUP BY. Ini boleh berlaku apabila SQL_MODE ditetapkan kepada ONLY_FULL_GROUP_BY, yang memerlukan semua lajur bukan agregat dalam senarai PILIH disertakan dalam klausa GROUP BY.

Penyelesaian 1: Lumpuhkan SQL_MODE=ONLY_FULL_GROUP_BYSatu penyelesaian adalah untuk melumpuhkan SQL_MODE=ONLY_FULL_GROUP_BY tetapan dengan mengeluarkan arahan berikut:

Ini akan membenarkan pertanyaan untuk dilaksanakan tanpa ralat.
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Salin selepas log masuk

Penyelesaian 2: Sertakan Semua Lajur Bukan Agregat dalam KUMPULAN OLEH Klausa

Penyelesaian lain ialah untuk memasukkan semua lajur tidak teragregat dalam klausa GROUP BY. Ini boleh dilakukan dengan mengubah suai pertanyaan untuk memasukkan perkara berikut:

Ini akan memastikan semua lajur tidak teragregat disertakan dalam klausa GROUP BY dan pertanyaan akan dilaksanakan tanpa ralat.
SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`, `id`
Salin selepas log masuk

Penyelesaian 3: Gunakan Fungsi Agregator

Untuk amalan terbaik, pertimbangkan untuk menggunakan agregator berfungsi untuk lajur tidak terkumpul dan bukannya memilih semua lajur. Contohnya, jika anda hanya memerlukan kiraan rekod untuk setiap jenis bukti, pertanyaan boleh diubah suai seperti berikut:

Atas ialah kandungan terperinci Cara Menyelesaikan Ralat MySQL: Senarai PILIH Tidak Serasi dengan SQL_MODE=ONLY_FULL_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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan