Heim >Backend-Entwicklung >PHP-Tutorial >Laravel WhereIn und GroupBy: Wie behebt man den 1055-Fehler von MySQL?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-07 16:24:13776Durchsuche

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.

Fehlerursachen

Dieser Fehler tritt auf, wenn:

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

Lösungen

Strikten Modus deaktivieren

Sie können Deaktivieren Sie den strikten Modus von MySQL, indem Sie „strict“ => festlegen. false im Array „mysql“ der Datei config/database.php.

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

Modi zu MySQL-Optionen hinzufügen

Alternativ können Sie den strikten Modus aktiviert lassen und fügen Sie bestimmte Modi zur Option „modes“ von „mysql“ hinzu. Array:

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

Das GroupBy-Feld in WhereIn einbeziehen

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.

Das obige ist der detaillierte Inhalt vonLaravel WhereIn und GroupBy: Wie behebt man den 1055-Fehler von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn