MySQL SELECT INTO变量
时间:2019-11-20 08:52:32 来源:igfitidea点击:
简介:在本教程中,您将学习如何使用MySQL SELECT INTO变量将查询结果存储在变量中。
MySQL SELECT INTO变量语法
要将查询结果存储在一个或多个变量中,请使用SELECT INTO变量语法:
SELECT c1, c2, c3, ... INTO @v1, @v2, @v3,... FROM table_name WHERE condition;
使用以下语法:
c1,c2和c3是要选择并存储到变量中的列或表达式。
@ v1,@ v2和@ v3是存储c1,c2和c3中的值的变量。
变量的数量必须与选择列表中的列或表达式的数量相同。
此外,查询必须返回零或一行。
如果查询不返回任何行,则MySQL发出警告,提示没有数据,并且变量的值保持不变。
如果查询返回多行,MySQL将发出错误。
为确保查询始终返回最大一行,请使用LIMIT 1子句将结果集限制为一行。
MySQL SELECT INTO变量示例
我们将使用示例数据库中的customers表进行演示。
MySQL SELECT INTO单变量示例
以下语句获取数字为103的客户所在的城市,并将其存储在@city变量中:
SELECT city INTO @city FROM customers WHERE customerNumber = 103;
以下语句显示@city变量的内容:
SELECT @city;
MySQL SELECT INTO多变量示例
要将选择列表中的值存储到多个变量中,请用逗号分隔变量。
例如,以下语句查找客户编号为103的城市和国家/地区,并将数据存储在两个相应的变量@city和@country中:
SELECT city, country INTO @city, @country FROM customers WHERE customerNumber = 103;
以下语句显示@city和@country变量的内容:
SELECT @city, @country;
MySQL SELECT INTO变量–多行示例
以下语句导致错误,因为查询返回多行:
SELECT creditLimit INTO @creditLimit FROM customers WHERE customerNumber > 103;
这是输出:
Error Code: 1172. Result consisted of more than one row
要解决此问题,请使用LIMIT 1子句,如下所示:
SELECT creditLimit INTO @creditLimit FROM customers WHERE customerNumber > 103 LIMIT 1;
在本教程中,您学习了如何使用MySQL SELECT INTO变量语法将结果查询结果存储在一个或多个变量中。