ホームページ >データベース >mysql チュートリアル >MySQL で動的クエリを実行するにはどうすればよいですか?

MySQL で動的クエリを実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 22:06:11448ブラウズ

How to Execute Dynamic Queries in MySQL?

MySQL での動的クエリの実行

SQL ステートメント自体が実行時に構築される動的クエリの実行は、通常、EXEC ストアド プロシージャを使用して MSSQL で実行されます。ただし、MySQL には直接同等の機能がありません。

課題の克服

MySQL で動的クエリを実行するには、クエリ文字列を変数として構築し、PREPARE ステートメントと EXECUTE ステートメントを使用する方法があります。

実装

次のコードは、動的クエリを実行する方法を示しています。 MySQL:

SET @queryString = (
SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM (
    SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( 
           SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 
    ) as qwe 
) as www
);

PREPARE stmt FROM @queryString;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 
SET @asd = NULL;
  1. 動的文字列連結とサブクエリを使用してクエリ文字列を変数 (@queryString) として構築します。
  2. 構築されたクエリ文字列を含む PREPARE ステートメントを使用してステートメントを準備します
  3. EXECUTE を使用して準備されたステートメントを実行します。
  4. DEALLOCATE PREPARE ステートメントを使用してプリペアド ステートメントの割り当てを解除します。

このアプローチに従うことにより、クエリ自体が事前に不明であっても、MySQL は動的クエリを実行できます。

以上がMySQL で動的クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。