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 |