Rumah >pembangunan bahagian belakang >tutorial php >Laravel WhereIn dan GroupBy: Bagaimana untuk Menyelesaikan Ralat 1055 MySQL?

Laravel WhereIn dan GroupBy: Bagaimana untuk Menyelesaikan Ralat 1055 MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-07 16:24:13775semak imbas

Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

Laravel: Ralat Sintaks atau Pelanggaran Akses: Ralat 1055 semasa Menggunakan WhereIn dan GroupBy

Untuk mendapatkan semula data baris tertentu, Laravel membenarkan kami untuk gunakan WhereIn dan GroupBy dalam pertanyaan yang sama. Walau bagaimanapun, ini kadangkala boleh mengakibatkan "Ralat sintaks atau pelanggaran akses: Ralat 1055".

Punca Ralat

Ralat ini berlaku apabila:

  • Mod ketat didayakan dalam tetapan MySQL.
  • Medan id, yang digunakan dalam keadaan WhereIn, tidak termasuk dalam senarai medan GroupBy.

Penyelesaian

Lumpuhkan Mod Ketat

Anda boleh melumpuhkan mod ketat MySQL dengan menetapkan 'ketat' => false dalam tatasusunan 'mysql' bagi fail config/database.php.

'mysql' => [
    ...
    'strict'   => false,
    ...
],

Tambah Mod pada Pilihan MySQL

Sebagai alternatif, anda boleh membiarkan mod ketat didayakan dan tambah mod tertentu pada pilihan 'mod' 'mysql' tatasusunan:

'mysql' => [
    ...
    'strict' => true,
    'modes' => ['STRICT_TRANS_TABLES'],
    ...
],

Sertakan Medan GroupBy dalam WhereIn

Pastikan medan id yang digunakan dalam keadaan WhereIn turut disertakan dalam senarai medan GroupBy. Ini akan menghalang ralat daripada berlaku.

$loadids = explode("#@*", $reciptdet->loading_id);
$loadingdatas = DB::table('loading')
    ->groupBy(['vehicle_no', 'id'])
    ->whereIn('id', $loadids)
    ->get();

Dengan melaksanakan penyelesaian ini, anda boleh menyelesaikan "Ralat sintaks atau pelanggaran akses: Ralat 1055" apabila menggunakan WhereIn dan GroupBy dalam pertanyaan yang sama.

Atas ialah kandungan terperinci Laravel WhereIn dan GroupBy: Bagaimana untuk Menyelesaikan Ralat 1055 MySQL?. 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