首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 變數宣告與賦值:與 SQL Server 差異對照

     編輯:MySQL 資料庫相關知識

SQL Server (T-SQL)

  • 區域變數:@var,全域變數:@@var(多為系統預定義)。
  • 宣告:DECLARE @num INT;
  • 賦值:SET @num = 1; 或 SELECT @num = col FROM tbl WHERE ...

MySQL

  • 無需預先宣告,直接使用 @var(用戶變數,會話級作用域)。
  • 賦值兩種語法:
    • SET @num = 1; 或 SET @num := 1;
    • SELECT @num := 1; 或 SELECT @num := col FROM tbl WHERE ...
  • 關鍵差異:SELECT 賦值必須用 :=,否則會被解析為比較運算子;SET 可用 = 或 :=。

範例對照

操作SQL ServerMySQL
宣告並賦值DECLARE @a INT; SET @a=1;SET @a=1; (隱式宣告)
查詢結果賦值SELECT @a=col FROM t;SELECT @a:=col FROM t;
多變數賦值SELECT @a=col1, @b=col2 FROM t;SELECT @a:=col1, @b:=col2 FROM t;

進階用法

MySQL 用戶變數可跨陳述式保持值,常用於模擬序號、累加計算等:

SET @rownum := 0;
SELECT @rownum := @rownum + 1 AS rownum, col1 FROM table;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved