MySQL - 變數賦值的 SET 語法



MySQL SET 語句

MySQL 中的 SET 語句用於為變數賦值。使用它,您可以為使用者定義變數、過程中的變數和系統變數設定值。

語法

以下是 MySQL 中 SET 語句的語法:

SET variable = val1, val2, val3, . . .

variable: {
   user_var_name
   | param_name
   | local_var_name
   | {GLOBAL | @@GLOBAL.} system_var_name
   | {PERSIST | @@PERSIST.} system_var_name
   | {PERSIST_ONLY | @@PERSIST_ONLY.} system_var_name
   | [SESSION | @@SESSION. | @@] system_var_name
}

為使用者定義變數設定值

您可以在當前 MySQL 會話中建立變數並在查詢中使用它們。在定義使用者定義變數時,需要在變數名前放置“@”。

示例

SET @name = 'Krishna';

SET @age = 25;

SET @phone = 9012345678;

您可以使用 SELECT 語句檢索這些變數的值,如下所示:

SELECT @name, @age, @phone;

輸出

以上查詢產生以下輸出:

@name @age @phone
Krishna 25 9012345678

為區域性變數設定值

您可以在儲存例程中定義變數,並使用 SET 語句為其設定值。

示例

以下是宣告區域性變數的示例:

DELIMITER //
CREATE PROCEDURE RepeatExample()
BEGIN
   DECLARE val INT;
   DECLARE squares INT;
   DECLARE res VARCHAR(100);
   SET val=1;
   SET squares=1;
   SET res = '';
   REPEAT
      SET squares = val*val;
      SET res = CONCAT(res, squares,',');
      SET val = val + 1;
   UNTIL val >= 10
   END REPEAT;
   SELECT res;
END//
DELIMITER ;

您可以如下呼叫上述過程:

CALL RepeatExample;

輸出

以下是上述查詢的輸出:

res
1,4,9,16,25,36,49,64,81,

為系統變數設定值

MySQL 系統變數儲存全域性或會話級別的值,這些變數用於配置各種操作。您可以使用 SET 語句動態地為這些變數設定值。

示例

讓我們驗證是否啟用了載入本地資料,如果沒有,您可以觀察 local_infile 變數的值,如下所示:

SHOW GLOBAL VARIABLES LIKE 'local_infile';

輸出

上述 mysql 查詢生成以下輸出:

Variable_name Value
local_infile OFF

以下查詢啟用 **local_infile** 選項:

SET GLOBAL local_infile = 'ON';

如果再次驗證變數 **local_infile** 的值,您可以觀察到已更改的值,如下所示:

SHOW GLOBAL VARIABLES LIKE 'local_infile';

輸出

以下是上述 mysql 查詢的輸出:

Variable_name value
local_infile ON
廣告