Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Ralat MySQL #1140: Pencampuran Lajur KUMPULAN?

Bagaimana untuk Menyelesaikan Ralat MySQL #1140: Pencampuran Lajur KUMPULAN?

Barbara Streisand
Lepaskan: 2024-12-29 16:51:17
asal
762 orang telah melayarinya

How to Resolve MySQL Error #1140: Mixing of GROUP Columns?

Ralat MySQL #1140: Pencampuran Lajur GROUP

Ralat ini berlaku apabila pertanyaan MySQL mencampurkan fungsi GROUP dengan lajur bukan GROUP dalam PILIH senarai, tetapi tanpa klausa GROUP BY. Dalam erti kata lain, ia mencadangkan bahawa sesetengah lajur yang dipilih harus dikumpulkan bersama, manakala yang lain tidak sepatutnya.

Pertimbangkan pertanyaan SQL berikut:

SELECT COUNT(node.nid),
       node.nid AS nid,
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
ORDER BY node_data_field_update_date_field_update_date_value DESC;
Salin selepas log masuk

Pertanyaan ini cuba mengira bilangan nod jenis 'kemas kini' dan dapatkan ID nod (nid) dan tarikh kemas kini untuk setiap nod. Walau bagaimanapun, ia mencampurkan fungsi GROUP COUNT() dengan lajur bukan GROUP nid dan node_data_field_update_date_field_update_date_value dalam senarai PILIH.

Untuk menyelesaikan ralat ini, sama ada lumpuhkan tetapan ONLY_FULL_GROUP_BY pada pelayan MySQL atau ubah suai pertanyaan kepada kumpulan yang bukan KUMPULAN lajur:

Melumpuhkan ONLY_FULL_GROUP_BY:

mysql> SET GLOBAL ONLY_FULL_GROUP_BY = OFF;
Salin selepas log masuk

Menambahkan Pengumpulan pada Pertanyaan:

SELECT COUNT(node.nid) AS node_count,
       node.nid AS nid,
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
GROUP BY node.nid, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL #1140: Pencampuran Lajur KUMPULAN?. 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