在MySQL中,當我們執行一條語句后,我們可能需要再次執行上一條語句,這時候可以使用以下兩種方法來調出上一條語句:
方法一:使用MySQL的變量
SET @prev_query = ''; -- 執行第一條語句 SELECT * FROM users WHERE id = 1; SET @prev_query = 'SELECT * FROM users WHERE id = 1;'; -- 執行第二條語句 SELECT * FROM users WHERE name = 'Jack'; SET @prev_query = 'SELECT * FROM users WHERE name = \'Jack\';'; -- 執行上一條語句 PREPARE stmt FROM @prev_query; EXECUTE stmt; -- 輸出結果如下: +----+------+---------+ | id | name | address | +----+------+---------+ | 1 | Jack | Beijing | +----+------+---------+
上述代碼中,我們使用MySQL的變量 @prev_query 來存儲上一條語句。在執行每一條語句之前,我們先將 @prev_query 設置為空字符串''。然后在執行每一條語句之后,我們將 @prev_query 設置為當前執行的語句。
在需要調出上一條語句的時候,我們可以通過 PREPARE 和 EXECUTE 語句來執行 @prev_query 變量中存儲的語句。
方法二:使用MySQL的歷史記錄
-- 執行第一條語句 SELECT * FROM users WHERE id = 1; -- 執行第二條語句 SELECT * FROM users WHERE name = 'Jack'; -- 執行上一條語句 \g -- 輸出結果如下: +----+------+---------+ | id | name | address | +----+------+---------+ | 1 | Jack | Beijing | +----+------+---------+
在MySQL命令行中,我們可以使用特殊命令 \g 來調出上一條語句。注意,這個命令必須要放在語句的結尾。