„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Laravel WhereIn und GroupBy: Wie behebt man den 1055-Fehler von MySQL?

Laravel WhereIn und GroupBy: Wie behebt man den 1055-Fehler von MySQL?

Veröffentlicht am 21.12.2024
Durchsuche:659

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

Laravel: Syntaxfehler oder Zugriffsverletzung: 1055 Fehler bei Verwendung von WhereIn und GroupBy

Für den Abruf bestimmter Zeilendaten ermöglicht uns Laravel dies Verwenden Sie sowohl WhereIn als auch GroupBy in derselben Abfrage. Dies kann jedoch manchmal zu einem „Syntaxfehler oder Zugriffsverletzung: 1055-Fehler“ führen.

Ursachen des Fehlers

Dieser Fehler tritt auf, wenn:

  • Der strenge Modus ist in den MySQL-Einstellungen aktiviert.
  • Das ID-Feld, das in der WhereIn-Bedingung verwendet wird, ist nicht enthalten in der Feldliste „GroupBy“.

Lösungen

Strikten Modus deaktivieren

Sie können den strikten Modus von MySQL deaktivieren Setzen Sie „strict“ => false im „mysql“-Array der config/database.php Datei.

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

Modi zu MySQL-Optionen hinzufügen

Alternativ können Sie den strikten Modus aktiviert lassen und bestimmte Modi zur Option „modes“ des Arrays „mysql“ hinzufügen:

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

Das GroupBy-Feld in WhereIn einbinden

Stellen Sie sicher, dass das in der WhereIn-Bedingung verwendete ID-Feld auch in der GroupBy-Feldliste enthalten ist. Dadurch wird verhindert, dass der Fehler auftritt.

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

Durch die Implementierung dieser Lösungen können Sie den „Syntaxfehler oder Zugriffsverletzung: 1055-Fehler“ beheben, wenn Sie WhereIn und GroupBy in derselben Abfrage verwenden.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3