將字串作為動態查詢執行可能是資料庫程式設計中的有用技術。在 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中文網其他相關文章!