這篇文章帶給大家的內容是關於MySQL的變數有哪些?怎麼用?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
MySQL 的變數分為四種: 局部變數 、 使用者變數 、 會話變數 和 全域變數 ,其中局部變數只存在於函數和儲存過程,這裡不多了解。其中 會話變數 和 全域變數 在 MySQL 中統稱為 系統變數 。
使用者變數
基本
顧名思義,就是使用者定義的變數。如何定義變數呢?有兩種方法:
SET 方式
# 两种方式都可以 SET @variable = expr SET @variable := expr
SELECT 方式
# 必须 := SELECT @variable := expr
使用者變數定義備註:
null(可不定義變數直接使用,不會報錯)
select 中的
limit 語句等。
SELECT @a = 0, @a := @a 1;,兩列都可能是0 。
SET @m = 0; SET @m = 3, @n = @m; SELECT @n; # 0
CREATE TABLE employee ( id int primary key, salary int not null ); INSERT INTO employee VALUES(1, 100); INSERT INTO employee VALUES(2, 200); INSERT INTO employee VALUES(3, 300);
SELECT salary, (@rowno := @rowno + 1) AS 'rowno' FROM employee, (SELECT @rowno := 0) r;
SELECT salary, (@rowno := @rowno + 1) AS 'rowno' FROM employee, (SELECT @rowno := 0) r WHERE @rowno = 0;
為什麼呢? WHERE 條件使用的 @rowno 一直都是同一個值 0 ,它不會因為 SELECT 上修改了就即時回應 。要實現
WHERE 的功能需要改寫成如下:
SELECT salary, rowno FROM ( SELECT salary, (@rowno := @rowno + 1) AS 'rowno' FROM employee, (SELECT @rowno := 0) r ) m WHERE rowno = 2;
set session var_name = value; set @@session.var_name = value; set var_name = value;
show session variables; # 以上代码会把所有会话变量罗列出来,可通过 like 进行过滤 show session variables LIKE "%var%";
set global var_name = value; set @@global.var_name = value;
show session variables; show global variables like "%var%";
以上是MySQL的變數有哪些?怎麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!