mysql變數包括系統變數和系統變數。這次的學習任務是使用者自定義變數。使用者變數主要包括區域性變數和會話變數。
使用者自定義變數的宣告方法形如:@var_name,其中變數名稱由字母、數字、「.」、「_」和「$」組成。當然,在以字串或者識別符號引用時也可以包含其他字元(例如:@』my-var』,@」my-var」,或者@my-var)。
使用者自定義變數是會話級別的變數。其變數的作用域僅限於宣告其的客戶端鏈結。當這個客戶端斷開時,其所有的會話變數將會被釋放。
使用者自定義變數是不區分大小寫的。
使用set語句來宣告使用者自定義變數:
set @my_var = 1;
set @my_var := 1;
不使用set時採用:=賦值,因為採用=可能被認為是比較操作符。
以下用乙個案例說明:
編寫乙個 sql查詢 來實現分數排名。如果兩個分數相同,則兩個分數排名(rank)應該相同。請注意,平局之後的下乙個排名數應該是下乙個連續的整數值。換句話說,行列之間不應該有「漏洞」。
| id | score |
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
例如,根據給定的上述 scores 表,您的查詢應該生成以下報告(按最高分排序):
| score | rank |
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
查詢語句:
select score, @rank := @rank + (@pre <> (@pre:=score)) rank
from scores ,(select @rank := 0,@pre:= -1) init
order by score desc
注:@rank表示成績排名
@pre表示上乙個人的分數
當與上乙個分數不一樣時@rank = @rank + 1,否則,@rank=rank。
將@rank初始化為1,@pre初始化為-1。
實驗結果為:
自定義引數 Python自定義函式引數
1.種類 1 位置引數 x就是位置引數 usr bin env python coding utf 8 def power x result x x print result 2 預設引數n就是預設引數 usr bin env python coding utf 8 def power x,n 1 ...
mysql 自定義函式使用
mysql語句模板 語句 create function 函式名 引數列表 returns 資料型別 begin sql語句 return 值 end select from test department 僅返回乙個數字 create function myselect returns int r...
mysql自定義函式優點 MySQL自定義函式
在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...