MySQL/語言/使用者變數
外觀
區域性變數無法從其函式或儲存過程外部訪問[1]。
它們像這樣宣告[2]
DECLARE MyVariable1 INT DEFAULT 1;
- 使用 := 賦值運算子在語句中設定變數的能力
- 例如(@total)用於計算示例中的總計,您必須先擁有總計列,因為它必須在計算個別百分比之前計算。
- 會話變數在整個執行緒持續時間內設定。
- 在絕大多數情況下,您將使用程式語言來執行此類操作。
- MySQL 變數在處理 MySQL 命令列時非常有用。
- 如果未返回任何記錄,則不會為該語句設定使用者變數。
- 在欄位列表中設定的使用者變數不能用作條件。
- 變數的值使用 SET 語句或在帶有 := 的 SELECT 語句中設定。
select @test := 2;
select @test + 1; -- returns 3
set @startdate='some_start_date', @enddate='some_end_date'
SELECT @toremember:=count(*) FROM membros;
select @numzero := count(*) from table1 where field=0;
select @numdistinct := count(distinct field) from table1 where field <> 0 ;
select @numzero @numdistinct;
- 您可以將 SELECT 獲取的值複製到一個或多個變數中。
SET @id = 0, @name = '';
SELECT id, name INTO @id, @name FROM table1 limit 1;
SELECT @id, @name;
全域性變數對所有使用者可見,它允許在會話期間或永久地修改配置檔案設定。 因此,在更改它們時,有必要分別使用 set global 和 set session 指定這種永久或臨時標準。 例如
mysql> set @@global.max_connections = 1000;
mysql> show global variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 60 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> set @@session.wait_timeout=120;