複雑な MySQL の複数ステートメントのクエリを Laravel Eloquent に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-26 04:21:02
オリジナル
268 人が閲覧しました

How to Convert Complex MySQL Multi-Statement Queries to Laravel Eloquent?

MySQL 複数ステートメント クエリを Laravel Eloquent に変換する

MySQL クエリでは、次のようなさまざまな操作を含む複雑な複数ステートメント クエリが発生することがあります。設定、準備、実行、割り当て解除。このようなクエリを Laravel Eloquent に変換するのは困難な場合があります。

解決策

Laravel Eloquent は複数のステートメントを実行したり、DEALLOCATE などの低レベルの操作を実行したりすることはできません。したがって、クエリを個々のコンポーネントに分割し、個別に実行する必要があります。

まず、GROUP_CONCAT クエリを実行します。

<code class="php">$concatResult = DB::table('item_details')
    ->selectRaw('GROUP_CONCAT(...) INTO @sql')
    ->get();</code>
ログイン後にコピー

@sql 変数に割り当てられた値を取得します。

<code class="php">$sql = DB::selectOne('select @sql')->{'@sql'};</code>
ログイン後にコピー

最後に、Eloquent で残りのクエリを作成して実行します。

<code class="php">ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity'))
    ->selectRaw($sql)
    ->groupBy('item_number')
    ->get();</code>
ログイン後にコピー

このソリューションは、MySQL の複数ステートメントのクエリを、Laravel Eloquent で個別に実行できる管理可能なチャンクに分割します。元のクエリと同じ結果が得られます。

以上が複雑な MySQL の複数ステートメントのクエリを Laravel Eloquent に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!