sql >> データベース >  >> RDS >> Mysql

MySQLのエイリアスで列を選択

    簡単な答え:

    1. SELECTリスト内のエイリアスへの参照または
    2. エイリアス式

    これまでに私が見つけた唯一のドキュメントは次のとおりです。 https:// bugs .mysql.com / bug.php?id =79549

    そのリンクには次のものがあります:

    [2015年12月9日15:35]RoyLyseng ...元の決定のより長い背景があります:

    WHERE句(さらに言えば、GROUP BY)のサブクエリでのエイリアスへの参照とは異なり、 SELECTリストでエイリアスへの参照を許可しない理由はありません(標準準拠を除く) 、クエリ実行の同じフェーズで使用できる必要があるためです。しかし、5.6でのサポートはかなり恣意的でした:

    これを前提として:テーブルt1(a int、b int)を作成します

    SELECTリストのエイリアスが無効です:

      select a+b as c,c+1 from t1;
    

    ただし、サブクエリ内では、cへの参照は有効です:

      select a+b as c,(select c+1) from t1;
    

    また、サブクエリはエイリアスの定義の後にある必要があります:

      select (select c+1),a+b as c from t1;
    

    したがって、SELECTリスト内のエイリアスへの参照のサポートは簡単に言えます。 かなりアドホックでした。それでも、古いソリューションの再実装を試みますが、この機能のサポートの明らかな穴をクリーンアップする試みはありません。ただし、WHERE句のサブクエリでエイリアスを参照することは再実装されません。

    標準ドキュメントでこの機能を説明しているバグレポート以外のドキュメントをまだ探しています。しかし、これまでのところ運はありません。



    1. MySQL:InnoDb:セマフォ待機が600秒以上続きました。サーバーを意図的にクラッシュさせます

    2. pl/sql配列の戻り値をJavaでフェッチする

    3. Ubuntu16.04にPostgreSQL10をインストールして接続します

    4. repmgr2.0RC2の発表