検索

ホームページ  >  に質問  >  本文

UNION の CREATE TABLE SELECT を使用した Mariadb のトラブルシューティング

<p>私は 6 つの UNION SELECT を含む PHP スクリプトに取り組んでいますが、スクリプト内ではこのコマンドは問題なく実行されます。このコマンドは、SQL クライアントから実行した場合にも正常に機能します。ただし、SELECT ステートメントを CREATE TABLE mytable SELECT 内に配置しようとすると、次のエラー メッセージが表示されます。 <pre class="brush:php;toolbar:false;">列名が正しくありません ''</pre> <p>6 つの UNION SELECT フラグメントのうち 5 つに、'' という名前の列名があります。これは、スクリプトの後続の部分にデータを入力するときにプレースホルダーとして使用されます。ただし、UNION の 1 つでは、同じ位置が varchar(32) 列です。 <br /><br />通常のコマンドの実行では、「匿名」列の存在は問題ではないようです。しかし、CREATE TABLE バージョンでは、これが気に入らないのです。 <br /><br />SELECT と CREATE TABLE SELECT ではユニオン列名のルールが異なるのはなぜですか? </p>


P粉115840076P粉115840076485日前564

全員に返信(1)返信します

  • P粉821231319

    P粉8212313192023-08-03 09:31:45

    テーブルには空白または欠落している列名を含めることはできませんが、結果セットには含めることができます。 CREATE TABLE SELECT ステートメントは、SELECT ステートメントの結果セットからテーブルの列名を取得します。したがって、結果セットの各列に、テーブル内の列から派生した名前、または AS エイリアスを介して指定された名前が付いていることを確認する必要があります。例えば、### リーリー

    は CREATE TABLE ステートメントに適用されますが、

    リーリー

    は、最初の列に別名列名が割り当てられないため、適用されません。

    返事
    0
  • キャンセル返事