在 MariaDB 中,您可以在一个语句中将值存储在用户定义变量中,并稍后在另一语句中引用它。这使您能够将值从一个语句传递到另一语句。
语法
在 MariaDB 中创建用户定义变量的语法如下:
SET @var_name = expr|value;
变量名称 var_name 由字母数字字符、.、_ 和 $。如果它被引用为字符串或标识符,它也可以包含其他字符,例如:@'my-var'、@"my-var"或@`my-var`。
对于 SET ,= 或 := 都可以用作赋值运算符。
示例 1:
下面的示例演示了如何在 MariaDB 中创建变量:
SET @name = "John";
SELECT @name;
+-------+
| @name |
+-------+
| John |
+-------+
SET @name = "Marry";
SELECT @name;
+-------+
| @name |
+-------+
| Marry |
+-------+
示例 2:
考虑一个名为 Employee 的数据库表,其中包含以下记录:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 27 | 2800 |
4 | Kim | Amsterdam | 30 | 3100 |
5 | Ramesh | London | 28 | 3000 |
6 | Huang | London | 28 | 2800 |
在下面的查询中,用户定义的变量用于选择和过滤数据:
SET @min_salary = 2800, @max_age = 30;
SELECT * FROM Employee
WHERE Salary > @min_salary AND Age < @max_age;
以下代码的结果将是:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
5 | Ramesh | New Delhi | 28 | 3000 |
声明用户定义变量的类型
在MariaDB中,不能声明用户定义变量的类型。强制其类型的唯一方法是使用 CAST() 或 CONVERT():
SET @str = CAST(123 AS CHAR(5));
如果变量尚未使用,其值为 NULL:
SELECT @x IS NULL;
+------------+
| @x IS NULL |
+------------+
| 1 |
+------------+