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
Barbara Streisandasal
2024-12-09 09:51:07381semak imbas

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'
    ],
]

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!

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