MySQL 於 CLI (Client) 的 MySQL 介面裡面,想要把 SQL 的結果使用變數暫時儲存,可以怎麼做呢?
MySQL SELECT 語法使用 變數暫存
於 MySQL CLI 的 MySQL 界面裡,想要暫存變數,可以有下述幾種作法:(注意:SELECT 結果 只能有一筆結果)
使用 SET 語法
- SET @col_val := (SELECT MAX(col_name) FROM TABLE_NAME);
- SELECT @col_val;
- SET @col_val := (SELECT col_name FROM TABLE_NAME LIMIT 1);
- SELECT @col_val;
使用 INTO 語法
- SELECT count(*) FROM TABLE_NAME INTO @var_count;
- SELECT @var_count;
- SELECT col_name FROM TABLE_NAME INTO @col_val;
- SELECT @col_val;
使用 INTO 與 多個欄位指定
- SELECT col_name INTO @col_val FROM TABLE_NAME WHERE id = 1;
- SELECT @col_val;
- SELECT col1,col2 INTO @col1,@col2 FROM TABLE_NAME LIMIT 1;
- SELECT @col1, @col2;
多重欄位直接指定
- SELECT @total_count := COUNT(*), @total_price := SUM(price) FROM TABLE_NAME;
變數若需要做判斷(三元運算子)
- SELECT if (@col_val > 0, @col_value, -1);
- 若 @col_val > 0,就回傳 @col_value 的值,不然就回傳 -1
- 語法類同: (@col_val) ? @col_val : -1;
- SELECT if (@col_val > 0, "==> " + @col_value, -1 );
- 同上,只是回傳的欄位多加上 "==> " 的符號