UNION の CREATE TABLE SELECT を使用した Mariadb のトラブルシューティング
P粉115840076
P粉115840076 2023-08-02 11:25:48
0
1
488

私は 6 つの UNION SELECT を含む PHP スクリプトに取り組んでいますが、スクリプト内ではこのコマンドは問題なく実行されます。このコマンドは、SQL クライアントから実行した場合にも正常に機能します。ただし、SELECT ステートメントを CREATE TABLE mytable SELECT 内に配置しようとすると、次のエラー メッセージが表示されます。

列名が正しくありません ''

6 つの UNION SELECT フラグメントのうち 5 つに、'' という名前の列名があります。これは、スクリプトの後続の部分にデータを入力するときにプレースホルダーとして使用されます。ただし、UNION の 1 つでは、同じ位置が varchar(32) 列です。

通常のコマンドの実行では、「匿名」列の存在は問題ではないようです。しかし、CREATE TABLE バージョンでは、これが気に入らないのです。

SELECT と CREATE TABLE SELECT ではユニオン列名のルールが異なるのはなぜですか?


P粉115840076
P粉115840076

全員に返信 (1)
P粉821231319

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

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

リーリー

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

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!