Wie kann ich eine komplexe MySQL-Abfrage mit mehreren Anweisungen in Laravel Eloquent konvertieren?

Barbara Streisand
Freigeben: 2024-10-30 13:48:02
Original
502 Leute haben es durchsucht

How Can I Convert a Complex Multi-Statement MySQL Query to Laravel Eloquent?

Konvertieren einer komplexen MySQL-Abfrage mit mehreren Anweisungen in Laravel Eloquent

Diese Abfrage enthält eine Reihe von Anweisungen, einschließlich GROUP_CONCAT, SET, PREPARE, EXECUTE und DEALLOCATE, deren Konvertierung in Laravel Eloquent überwältigend sein kann. Lassen Sie es uns Schritt für Schritt aufschlüsseln.

Erstens unterstützt Laravel keine vorbereiteten Anweisungen wie PREPARE und EXECUTE. Wir können jedoch Rohabfragen verwenden, um jede dieser Anweisungen einzeln auszuführen.

<code class="php">DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();
DB::statement('SET @sql = CONCAT(...)');
DB::statement('DEALLOCATE PREPARE stmt');</code>
Nach dem Login kopieren

Als nächstes müssen wir das Ergebnis der SET-Anweisung abrufen. Da es sich um einen Skalarwert handelt, können wir ihn mit selectOne() abrufen.

<code class="php">$sql = DB::selectOne('select @sql')->{'@sql'};</code>
Nach dem Login kopieren

Schließlich können wir den abgerufenen SQL-String in unserer Eloquent-Abfrage verwenden.

<code class="php">ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity'))
    ->selectRaw($sql)
    ->groupBy('item_number')
    ->get();</code>
Nach dem Login kopieren

Dieser Code führt die MySQL-Abfrage mit mehreren Anweisungen unter Verwendung von Rohabfragen aus und ruft die erwarteten Ergebnisse ab.

Das obige ist der detaillierte Inhalt vonWie kann ich eine komplexe MySQL-Abfrage mit mehreren Anweisungen in Laravel Eloquent konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!