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
广告

© . All rights reserved.