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

MySQLUNIONでのステートメント評価と変数割り当ての順序

    @colの割り当てを他のクエリと統合しないでください。

    @colに値を割り当てるための1つのクエリと、そのレコードを結果に含めるための別のクエリがあります。

    SELECT @col := col AS col    -- Fetch particular record given a value of
      FROM tbl                   -- "col", assigning the identifier to @col.
     WHERE col = 'd'
    
    
    
    SELECT col                   -- Now include the above record in the
      FROM tbl                   -- Final result-set
    WHERE col = @col
    
    UNION ALL
    
    SELECT col                   -- Fetch the immediately preceding record,
      FROM (  SELECT col         -- ordered by "col"
                FROM tbl
               WHERE col < @col
            ORDER BY col DESC
              LIMIT 1) preceding
    
    UNION ALL
    
    SELECT col                   -- Fetch the immediately following record,
      FROM (  SELECT col         -- ordered by "col"
                FROM tbl
               WHERE col > @col
            ORDER BY col ASC
              LIMIT 1) following
    ORDER BY col ASC;
    


    1. 2つのクエリの結果を結合するmysql

    2. 1回のクエリ呼び出しで同じテーブル内の複数の列の中央値を計算する

    3. SQL ServerでNULLを別の値に置き換える方法– ISNULL()

    4. 例外を処理して残りのステートメントを実行する方法は?