3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
用戶定義變量 (以 @
):您可以訪問(wèn)任何用戶定義的變量,而無(wú)需聲明或初始化它。如果引用未初始化的變量,則該變量的值為 NULL
和一種字符串。 SELECT @var_any_var_name
可以使用 SET
或 SELECT
聲明: SET @start = 1, @finish = 10;
或 SELECT @start := 1, @finish := 10;SELECT * FROM places WHERE place BETWEEN @start AND @finish;
用戶變量可以從有限的數(shù)據(jù)類型集中分配一個(gè)值:整數(shù)、十進(jìn)制、浮點(diǎn)、二進(jìn)制或非二進(jìn)制字符串或空值。 用戶定義的變量是會(huì)話特定的。也就是說(shuō),一個(gè)客戶端定義的用戶變量不能被其他客戶端看到或使用。 它們可以用于 SELECT
查詢使用 先進(jìn)的MySQL用戶變量技術(shù) .局部變量 (無(wú)前綴): 需要使用 DECLARE
在訪問(wèn)它之前。 它們可以用作局部變量和存儲(chǔ)過(guò)程中的輸入?yún)?shù): DELIMITER //CREATE PROCEDURE sp_test(var1 INT) BEGIN DECLARE start INT unsigned DEFAULT 1; DECLARE finish INT unsigned DEFAULT 10; SELECT var1, start, finish; SELECT * FROM places WHERE place BETWEEN start AND finish; END; //DELIMITER ;CALL sp_test(5);
如果 DEFAULT
子句,則初始值為 NULL
.局部變量的作用域是 BEGIN ... END
在其中聲明它的塊。 服務(wù)器系統(tǒng)變量 (以 @@
):MySQL服務(wù)器維護(hù)了許多 系統(tǒng)變量 配置為默認(rèn)值。它們可以是類型的 GLOBAL
,SESSION
或 BOTH
.全局變量影響服務(wù)器的整體操作,而會(huì)話變量則影響對(duì)單個(gè)客戶端連接的操作。 若要查看正在運(yùn)行的服務(wù)器使用的當(dāng)前值,請(qǐng)使用 SHOW VARIABLES
陳述或 SELECT @@var_name
.SHOW VARIABLES LIKE '%wait_timeout%';SELECT @@sort_buffer_size;
它們可以在服務(wù)器啟動(dòng)時(shí)使用命令行上的選項(xiàng)或選項(xiàng)文件中的選項(xiàng)進(jìn)行設(shè)置。在服務(wù)器運(yùn)行時(shí),可以動(dòng)態(tài)更改其中的大多數(shù) SET GLOBAL
或 SET SESSION
:-- Syntax to Set value to a Global variable:SET GLOBAL sort_buffer_size=1000000;SET @@global.sort_buffer_size=1000000; -- Syntax to Set value to a Session variable:SET sort_buffer_size=1000000;SET SESSION sort_buffer_size=1000000;SET @@sort_buffer_size =1000000;SET @@local.sort_buffer_size=10000;

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
集
SET @var_name = value
SET @var := value
選擇
SELECT col1, @var_name := col2 from tb_name WHERE "conditon";
SELECT col1, col2 INTO @var_name, col3 FROM .....

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
添加回答
舉報(bào)