データベースに仮想テーブルを作成せずに仮想/一時テーブルを表示するには、単純な SQL クエリが必要です。
PHP を使用してデータを含むクエリ文字列を作成しています。
現在の PHP コードは次のとおりです:
$array = [ ['id' => 1, 'name' => 'one'], ['id' => 2, 'name' => 'two'], ['id' => 3, 'name' => 'three'] ]; $subQuery = "SELECT {$array[0]['id']} AS Col1, '{$array[0]['name']}' AS Col2'; for ($i=1; $i出力は次のようになります:
with cte as ( select 1 col1, 'one' col2 union all 2, 'two' 3, 'three' cteからcol1、col2を選択します。 sqlからの出力テーブル 列1 列2 つ 2 3 スリー< pre>このクエリのアイデアはここから得ました。 < p>
しかし、このクエリの問題は、$array に 100 個のデータがある場合、union all< strong> 部分が sql 回含まれることです。これは 個のテーブルを同時に結合するようなものなので、これより優れた とは思えません。
この with< 句の代わりに一時テーブル (create temporary table table_name< strong>) を作成することもできますが、これは単一のクエリではありません。一時テーブルにレコードを挿入するには、別のクエリが必要です。
このクエリをより良い方法で単純化するのを手伝ってくれる人はいますか? < div>
MySQL 8 を使用する場合、
リーリーjson_table
式を次のように使用できます:PHP オンライン エディター
MySQL 8.0 では、上記のクエリの結果は次のようになります:
リーリー