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

MySQL:クエリの結果からユーザー変数を設定します

    はい。ただし、変数の割り当てをクエリに移動する必要があります。

    SET @user := 123456;
    SELECT @group := `group` FROM user WHERE user = @user;
    SELECT * FROM user WHERE `group` = @group;
    

    テストケース:

    CREATE TABLE user (`user` int, `group` int);
    INSERT INTO user VALUES (123456, 5);
    INSERT INTO user VALUES (111111, 5);
    

    結果:

    SET @user := 123456;
    SELECT @group := `group` FROM user WHERE user = @user;
    SELECT * FROM user WHERE `group` = @group;
    
    +--------+-------+
    | user   | group |
    +--------+-------+
    | 123456 |     5 |
    | 111111 |     5 |
    +--------+-------+
    2 rows in set (0.00 sec)
    

    SETの場合は注意してください 、=のいずれか または:= 代入演算子として使用できます。ただし、他のステートメント内では、代入演算子は:=である必要があります =ではありません =だから 非SETステートメントでは比較演算子として扱われます。

    更新:

    以下のコメントに加えて、次のこともできます。

    SET @user := 123456;
    SELECT `group` FROM user LIMIT 1 INTO @group; 
    SELECT * FROM user WHERE `group` = @group;
    


    1. PHPExcelとテキストラッピング

    2. 翻訳番号をハードコードせずに、番号(通貨)をイタリアの通貨にスペルするPlsql

    3. ClusterControl1.7を使用したエージェントベースのデータベース監視の紹介

    4. Windows用のPostgreSQLの開発、パート3