Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich eine MySQL-Abfrage mit mehreren Anweisungen in Laravel Eloquent konvertieren?

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

Patricia Arquette
Freigeben: 2024-10-26 04:29:31
Original
178 Leute haben es durchsucht

How can I convert a MySQL multi-statement query to Laravel Eloquent?

Konvertieren einer MySQL-Multi-Statement-Abfrage in Laravel Eloquent

Betrachten Sie die folgende MySQL-Abfrage:

SELECT <br>GROUP_CONCAT(DISTINCT</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">CONCAT(
  'ifnull(SUM(case when location_code = ''',
  location_code ,
  ''' then quantity end),0) AS `',
  location_code , '`'
)
Nach dem Login kopieren

) INTO @sql
FROM
item_details;
SET @sql = CONCAT('SELECT item_number,SUM(quantity) as „total_quantity“, ', @sql, '

              FROM item_details
               GROUP BY item_number');
Nach dem Login kopieren

PREPARE stmt FROM @sql;
EXECUTE stmt;

DEALLOCATE PREPARE stmt;

Die Herausforderung besteht darin, diese Abfrage in Laravel Eloquent umzuwandeln, insbesondere unter Berücksichtigung der verschiedenen Anweisungen: PREPARE, EXECUTE, SET und DEALLOCATE.

Lösung:

Die Konvertierung weitgehend beinhaltet Rohabfragen:

DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();<br> DB::statement('SET @sql = CONCAT(...)');<br>DB::statement('PREPARE stmt FROM @sql');<br>DB::statement('EXECUTE stmt'); <br>DB::statement('DEALLOCATE PREPARE stmt');<br>

Hier ist eine detailliertere Implementierung:

DB::table( 'item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();<br>$sql = DB::selectOne('select @sql')->{' @sql'};<br>ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity'))</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">->selectRaw($sql)
->groupBy('item_number')
->get();
Nach dem Login kopieren

Dieser Ansatz verwaltet effektiv die Konvertierung von der ursprünglichen MySQL-Abfrage zu Laravel Eloquent und nutzt dabei eine Kombination aus Rohabfragen und Eloquent-Methoden.

Das obige ist der detaillierte Inhalt vonWie kann ich eine 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
Vorheriger Artikel:Wie speichere ich Dateinamen und Formulardaten beim Hochladen von Bildern mit PHP zusammen? Nächster Artikel:Wie kann ich die JPEG-Konvertierung aus PDF mit PHP und ImageMagick für optimale Qualität und Größe verbessern?
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
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage