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

変数からのmysqlフィールド名

    文字列が外部アプリケーション(PHPなど)にある場合は、MySQLステートメントを作成するだけです。

    文字列がMySQLテーブル内にある場合、それはできません。 MySQLにはeval()がありません またはそのような機能。次のことは不可能です:

    テーブルのqueriesがあるとします。 フィールドcolumnname これは、テーブルmytableの列名の1つを参照します 。 queriesに追加の列がある可能性があります columnnameを選択できます あなたが欲しい。

    INSERT INTO queries  (columname) VALUES ("name")
    SELECT (select columnname from queries) from mytable
    

    ただし、プリペアドステートメント 。これは非常にハッキーであることに注意してください。

    SELECT columnname from queries into @colname;
    SET @table = 'mytable';
    SET @s = CONCAT('SELECT ',@colname,' FROM ', @table);
    
    PREPARE stmt FROM @s;
    EXECUTE stmt;
    


    1. MySQLチュートリアル–MySQLサーバーでのSSLの構成と管理

    2. PostgreSQL JSON列をJSONBにアップグレードしますか?

    3. 別のアプリケーションから1つのアプリケーションのデータベースにアクセスする

    4. SQL Server 2005で1つのステートメントで2つのテーブルを更新するにはどうすればよいですか?