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

文字列から列名への動的変換。 MySQL

    この質問 への回答をご覧になることをお勧めします 、私はあなたが達成しようとしていることだと信じています。つまり、答えは、eval()風の機能をシミュレートするためにプリペアドステートメントを使用することを示唆しています。あなたの場合、これはうまくいくかもしれません(SQLFiddle ここ を見ることができます :

    SELECT transaction_type FROM orders WHERE id=1 into @colname;
    SET @table = 'items';
    SET @query = CONCAT('SELECT ',@colname,' FROM ', @table);
    
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    

    私は、基礎となるメカニズムの専門家であるとは主張しませんが、コメントによれば、それは目標を達成しているようです。繰り返しになりますが、これは別の回答から採用されたため、機能する場合は必ず+1してください:)



    1. Mysql左結合ヌルの結果

    2. MySQLiで参照によってパラメータを渡すことができません

    3. MariaDB CURRENT_USER()の説明

    4. SQLデータをあるテーブルから別のテーブルに移動する