如果想要一次性将查询结果存储在多个用户变量中,可以使用SELECT INTO语法:
SELECT
c1, c2, c3, ...
INTO
@v1, @v2, @v3,...
FROM
table_name
WHERE
condition;
从MySQL 8.0.20版本后,INTO支持写在sql的句尾。
SELECT c1,c2 FROM t1 FOR UPDATE INTO @v1,@v2;
其中,c1、c2、c3是希望存储到变量中的列名或表达式,而@v1、@v2、@v3是用来存储c1、c2、c3的值的变量。
请注意,作为存储容器的变量的数量必须与列或表达式的数量相同,查询结果必须返回0或1条。
若查询没有返回任何结果,则Mysql会抛出没有数据的警告,作为存储容器的变量(@v1,@v2,@v3)的值保持不变。
若查询返回多行数据,则Mysql会直接抛出错误,因此建议使用limit 0,1或limit 1来限制返回数据的数量。
查询用户变量的方式很简单: select @v1;