在 MySQL 中執行字串
程式設計中的常見任務之一是動態產生和執行 SQL 查詢的能力。在 MySQL 中,此功能並不像 SQL Server 等其他語言那麼簡單,SQL Server 為此目的提供了 EXEC 指令。
問題:
使用者想要轉換 MSSQL 中使用 varchar 作為查詢的預存程序。但是,MySQL 不支援 EXEC 和 EXECUTE,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中文網其他相關文章!