Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membetulkan Ralat 'Ralat sintaks atau pelanggaran akses: 1055' Laravel Apabila Menggunakan WhereIn dan GroupBy?

Bagaimana untuk Membetulkan Ralat 'Ralat sintaks atau pelanggaran akses: 1055' Laravel Apabila Menggunakan WhereIn dan GroupBy?

Barbara Streisand
Lepaskan: 2024-12-09 09:51:07
asal
382 orang telah melayarinya

How to Fix Laravel's

Menyelesaikan masalah "Ralat sintaks atau pelanggaran akses: 1055" dalam Laravel

Apabila menggunakan WhereIn dan GroupBy dalam pertanyaan yang sama, anda mungkin menghadapi ralat seperti "SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1055". Ini menunjukkan pelanggaran terhadap keperluan SQL untuk memasukkan semua lajur bukan agregat dalam klausa KUMPULAN OLEH.

Untuk menyelesaikan isu ini, terdapat dua pilihan.

Lumpuhkan Mod Ketat

Dalam fail config/database.php anda, di bawah tatasusunan 'mysql', tetapkan 'ketat' ke palsu. Ini akan melumpuhkan semua tetapan mod ketat.

Tentukan Mod Ketat Yang Dibenarkan

Sebagai alternatif, anda boleh membiarkan 'ketat' sebagai benar dan menambah mod tertentu pada pilihan 'mod' . Untuk membenarkan pengumpulan mengikut satu lajur tanpa memasukkannya dalam klausa GROUP BY, ulas mod 'ONLY_FULL_GROUP_BY'.

'mysql' => [
    ...

    'strict' => true,
    'modes' => [
        // 'ONLY_FULL_GROUP_BY', // Disable this to allow grouping by one column
        'STRICT_TRANS_TABLES',
        'NO_ZERO_IN_DATE',
        'NO_ZERO_DATE',
        'ERROR_FOR_DIVISION_BY_ZERO',
        'NO_AUTO_CREATE_USER',
        'NO_ENGINE_SUBSTITUTION'
    ],
]
Salin selepas log masuk

Anda boleh terus menggunakan WhereIn dan GroupBy tanpa menghadapi ralat "1055".

Nota: Adalah disyorkan untuk menggunakan mod ketat untuk keselamatan dan data sebab integriti. Walau bagaimanapun, anda mungkin perlu melumpuhkannya buat sementara waktu untuk pertanyaan yang memerlukan pengumpulan mengikut lajur tidak teragregat.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Ralat sintaks atau pelanggaran akses: 1055' Laravel Apabila Menggunakan WhereIn dan GroupBy?. 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