MySQL の変数テーブル名からのデータの選択
MySQL では、次のようなテーブルからデータを取得する必要があるシナリオが発生する場合があります。名前は変数に格納されます。名前によってテーブルに動的にアクセスするとエラーが発生する可能性があるため、これを SQL だけで実現するのは難しい場合があります。
問題:
次のシナリオを考えてみましょう:
SET @ID_1 = (SELECT ID FROM `slider` LIMIT 0,1); SET @Cat = (SELECT Category FROM `slider` LIMIT 0,1); select * from @Cat where ID = @ID_1;
MySQL は変数 @Cat を有効なテーブルとして解釈できないため、このクエリを実行するとエラーが発生しますname.
解決策:
この制限を克服するには、準備されたステートメントを使用できます:
SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1); PREPARE stmt1 FROM @s; EXECUTE stmt1; DEALLOCATE PREPARE stmt1;
内訳:
このアプローチにより、SQL クエリを動的に実行できます。テーブル名は、変数 @Cat および @ID_1 に格納されている値から実行時に決定されます。
以上がMySQL で変数名を持つテーブルからデータを選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。