Mysql SELECT INTO 一次性給多個變量賦值

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章