首頁 > 資料庫 > mysql教程 > MySQL 可以像 JavaScript 的 eval() 一樣執行字串作為查詢嗎?

MySQL 可以像 JavaScript 的 eval() 一樣執行字串作為查詢嗎?

Mary-Kate Olsen
發布: 2024-11-29 09:35:16
原創
272 人瀏覽過

Can MySQL Execute a String as a Query Like JavaScript's eval()?

MySQL 可以執行字串作為查詢嗎?

問題:

在 MySQL 中環境中,嘗試執行透過 EXEC 或 CALL 傳入 varchar 作為查詢的儲存程序已被證明不成功。是否有一個與 JavaScript 的 eval 函數等效的 MySQL 可以實現這一點?

答案:

是的,以下技術提供了類似於JavaScript 的eval 的MySQL 實作:

  1. 使用CONCAT 定義SQL 變數(@queryString) 以從varchar 動態產生查詢字串參數。
  2. 使用 PREPARE 基於 @queryString 準備一條語句 (stmt)。
  3. 使用 EXECUTE 執行準備好的語句 (stmt)。
  4. 使用 DEALLOCATE PREPARE 取消分配準備好的語句.
  5. 將 SQL 變數 (@asd) 重設為NULL。

例如:

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;
登入後複製

以上是MySQL 可以像 JavaScript 的 eval() 一樣執行字串作為查詢嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板