摘要:在本教程中,您将学习如何使用 MySQL SELECT INTO variable
将查询结果存储在变量中。
MySQL SELECT INTO Variable
语法
要将查询结果存储在一个或多个变量中,可以使用SELECT INTO variable
语法:
SELECT
c1, c2, c3, ...
INTO
@v1, @v2, @v3,...
FROM
table_name
WHERE
condition;
Code language: SQL (Structured Query Language) (sql)
在这个语法中:
- c1、c2 和 c3 是您要选择并存储到变量中的列或表达式。
- @v1、@v2 和 @v3 是存储 c1、c2 和 c3 中的值的变量。
变量的数量必须与选择列表中的列数或表达式的数量相同。此外,查询必须返回零行或一行。
如果查询没有返回任何行,MySQL 会发出没有数据的警告,并且变量的值保持不变。
如果查询返回多行,MySQL 会发出错误。为了确保查询始终返回最多一行,您可以使用LIMIT 1
子句将结果集限制为一行。
MySQL SELECT INTO Variable
示例
我们将使用示例数据库中的customers
表进行演示。
MySQL SELECT INTO 单变量示例
以下语句获取号码为 103 的客户的城市并将其存储在 @city 变量中:
SELECT
city
INTO
@city
FROM
customers
WHERE
customerNumber = 103;
Code language: SQL (Structured Query Language) (sql)
以下语句显示@city变量的内容:
SELECT
@city;
Code language: SQL (Structured Query Language) (sql)
MySQL SELECT INTO 多个变量示例
要将选择列表中的值存储到多个变量中,可以用逗号分隔变量。例如,以下语句查找客户编号 103 的城市和国家,并将数据存储在两个相应的变量@city 和@country 中:
SELECT
city,
country
INTO
@city,
@country
FROM
customers
WHERE
customerNumber = 103;
Code language: SQL (Structured Query Language) (sql)
以下语句显示了 @city 和 @country 变量的内容:
SELECT
@city,
@country;
Code language: SQL (Structured Query Language) (sql)
MySQL SELECT INTO 变量 – 多行示例
以下语句会导致错误,因为查询返回多行:
SELECT
creditLimit
INTO
@creditLimit
FROM
customers
WHERE
customerNumber > 103;
Code language: SQL (Structured Query Language) (sql)
这是输出:
Error Code: 1172. Result consisted of more than one row
Code language: SQL (Structured Query Language) (sql)
要修复此问题,请使用LIMIT 1
子句,如下所示:
SELECT
creditLimit
INTO
@creditLimit
FROM
customers
WHERE
customerNumber > 103
LIMIT 1;
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用 MySQL SELECT INTO variable
语法将结果查询结果存储在一个或多个变量中。
本教程有帮助吗?