如果想要一次性將查詢結果存儲在多個變量中,可以使用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來限制返回數據的數量。