MySQL での文字列の実行
プログラミングにおける一般的なタスクの 1 つは、SQL クエリを動的に生成して実行する機能です。 MySQL では、この機能は、この目的のための EXEC コマンドを提供する SQL Server などの他の言語ほど単純ではありません。
問題:
ユーザーは次のことを望んでいます。 varchar をクエリとして使用する MSSQL のストアド プロシージャを変換します。ただし、EXEC と EXECUTE は MySQL ではサポートされておらず、CALL も機能しません。
解決策:
MySQL には JavaScript の eval 関数とまったく同等の関数がありません。 、動的 SQL とストアド プロシージャを組み合わせて使用する回避策があります。これを実現する方法は次のとおりです。
例:
次のコード スニペットは、解決策を示しています:
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;
以上がEXEC または EXECUTE を使用せずに MySQL で動的 SQL クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。