亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在MySQL存儲過程中使用動態SQL

如何在MySQL存儲過程中使用動態SQL

一只名叫tom的貓 2019-06-11 13:17:44
如何在MySQL存儲過程中使用動態SQL如何在MySQL存儲過程中構建和使用動態SQL?
查看完整描述

3 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

我不相信MySQL支持動態SQL。你可以做一些類似但不同的“準備”語句。

以下是一個例子:

mysql> PREPARE stmt FROM 
    -> 'select count(*) 
    -> from information_schema.schemata 
    -> where schema_name = ? or schema_name = ?';Query OK, 0 rows affected (0.00 sec)Statement prepared
mysql> EXECUTE stmt 
    -> USING @schema1,@schema2+----------+| count(*) |+----------+|        2 |+----------+1 row in set (0.00 sec)mysql> 
    DEALLOCATE PREPARE stmt;

準備好的語句通常用于查看給定查詢的執行計劃。因為它們是用執行命令和SQL可以分配給一個變量,您可以近似于一些與動態SQL相同的行為。

這里有個好東西鏈接關于這一點:

不要忘記釋放stmt用最后一行!

祝好運!


查看完整回答
反對 回復 2019-06-11
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

可以使用用戶定義的變量在動態語句之外傳遞。


Server version: 5.6.25-log MySQL Community Server (GPL)


mysql> PREPARE stmt FROM 'select "AAAA" into @a';

Query OK, 0 rows affected (0.01 sec)

Statement prepared


mysql> EXECUTE stmt;

Query OK, 1 row affected (0.01 sec)


DEALLOCATE prepare stmt;

Query OK, 0 rows affected (0.01 sec)


mysql> select @a;

+------+

| @a   |

+------+

|AAAA  |

+------+

1 row in set (0.01 sec)


查看完整回答
反對 回復 2019-06-11
  • 3 回答
  • 0 關注
  • 878 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號