文字列を動的クエリとして実行することは、データベース プログラミングで役立つテクニックです。 MySQL では、この機能は EXEC や EXECUTE などの直接メソッドでは使用できません。ただし、PREPARE ステートメントと EXECUTE ステートメントを使用する回避策があります。
MySQL で文字列をクエリとして実行するには、次の手順を使用できます。
PREPARE stmt FROM 'INSERT INTO table_name (column1, column2) VALUES (?, ?)';
SET @value1 = 'value1'; SET @value2 = 'value2';
EXECUTE stmt USING @value1, @value2;
DEALLOCATE PREPARE stmt;
例:
次の例は、クエリを動的に実行して複数の行を挿入する方法を示しています。テーブルに変換します:
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;
この例では、ユーザー ID とグループのリストをデータベースにクエリします。 ID を取得し、動的クエリ文字列を構築してこれらの値を user_group テーブルに挿入し、動的クエリを実行します。
以上がPREPARE と EXECUTE を使用して MySQL で動的クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。