ホームページ > データベース > mysql チュートリアル > MySQL で変数名を持つテーブルからデータを選択するには?

MySQL で変数名を持つテーブルからデータを選択するには?

Mary-Kate Olsen
リリース: 2024-12-27 00:43:09
オリジナル
715 人が閲覧しました

How to Select Data from a Table with a Variable Name in MySQL?

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;
ログイン後にコピー

内訳:

  • セット@s: 文字列を連結して動的 SQL クエリを形成します。
  • PREPARE stmt1 FROM @s: 変数 @s に格納された動的 SQL クエリを使用してステートメント stmt1 を準備します。
  • stmt1 を実行:プリペアド ステートメントを実行します。
  • DEALLOCATE PREPARE stmt1: リソースを解放するためにプリペアド ステートメントの割り当てを解除します。

このアプローチにより、SQL クエリを動的に実行できます。テーブル名は、変数 @Cat および @ID_1 に格納されている値から実行時に決定されます。

以上がMySQL で変数名を持つテーブルからデータを選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート