在 MySQL 中,您可以在一个语句中将值存储在用户定义变量中,并稍后在另一语句中引用它。这使您能够将值从一个语句传递到另一语句。

语法

在 MySQL 中创建用户定义变量的语法如下:

SET @var_name = expr|value; 

变量名称 var_name 由字母数字字符、._$。如果它被引用为字符串或标识符,它也可以包含其他字符,例如:@'my-var'、@"my-var"或@`my-var`。

对于 SET ,=:= 都可以用作赋值运算符。

示例 1:

下面的示例演示了如何在 MySQL 中创建变量:

mysql> SET @name = "John";
mysql> SELECT @name;
+-------+
| @name |
+-------+
| John  |
+-------+

mysql> SET @name = "Marry";
mysql> SELECT @name;
+-------+
| @name |
+-------+
| Marry |
+-------+ 

示例 2:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshLondon283000
6HuangLondon282800

在下面的查询中,用户定义的变量用于选择和过滤数据:

SET @min_salary = 2800, @max_age = 30;
SELECT * FROM Employee
WHERE Salary > @min_salary AND Age < @max_age; 

以下代码的结果将是:

EmpIDNameCityAgeSalary
1JohnLondon253000
5RameshNew Delhi283000

声明用户定义变量的类型

在MySQL中,不能声明用户定义变量的类型。强制其类型的唯一方法是使用 CAST()CONVERT():

SET @str = CAST(123 AS CHAR(5)); 

如果变量尚未使用,其值为 NULL:

SELECT @x IS NULL;
+------------+
| @x IS NULL |
+------------+
|          1 |
+------------+