亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在MySQL中聲明變量?

如何在MySQL中聲明變量?

MMTTMM 2019-07-11 15:35:22
如何在MySQL中聲明變量?如何在MySQL中聲明一個變量,以便我的第二個查詢可以使用它?我想寫這樣的東西:SET start = 1;SET finish = 10;SELECT * FROM places WHERE place BETWEEN start AND finish;
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

MySQL中主要有三種類型的變量:

  1. 用戶定義變量(以@):

    您可以訪問任何用戶定義的變量,而無需聲明或初始化它。如果引用未初始化的變量,則該變量的值為NULL和一種字符串。

    SELECT @var_any_var_name

    可以使用SETSELECT聲明:

    SET @start = 1, @finish = 10;

    SELECT @start := 1, @finish := 10;SELECT * FROM places WHERE place BETWEEN @start AND @finish;

    用戶變量可以從有限的數據類型集中分配一個值:整數、十進制、浮點、二進制或非二進制字符串或空值。

    用戶定義的變量是會話特定的。也就是說,一個客戶端定義的用戶變量不能被其他客戶端看到或使用。

    它們可以用于SELECT查詢使用先進的MySQL用戶變量技術.

  2. 局部變量(無前綴):

    需要使用DECLARE在訪問它之前。

    它們可以用作局部變量和存儲過程中的輸入參數:

    DELIMITER //CREATE PROCEDURE sp_test(var1 INT) BEGIN   
        DECLARE start  INT unsigned DEFAULT 1;  
        DECLARE finish INT unsigned DEFAULT 10;
    
        SELECT  var1, start, finish;
    
        SELECT * FROM places WHERE place BETWEEN start AND finish; END; //DELIMITER ;CALL sp_test(5);

    如果DEFAULT子句,則初始值為NULL.

    局部變量的作用域是BEGIN ... END在其中聲明它的塊。

  3. 服務器系統變量(以@@):

    MySQL服務器維護了許多系統變量配置為默認值。它們可以是類型的GLOBALSESSIONBOTH.

    全局變量影響服務器的整體操作,而會話變量則影響對單個客戶端連接的操作。

    若要查看正在運行的服務器使用的當前值,請使用SHOW VARIABLES陳述或SELECT @@var_name.

    SHOW VARIABLES LIKE '%wait_timeout%';SELECT @@sort_buffer_size;

    它們可以在服務器啟動時使用命令行上的選項或選項文件中的選項進行設置。在服務器運行時,可以動態更改其中的大多數SET GLOBALSET SESSION:

    -- Syntax to Set value to a Global variable:SET GLOBAL sort_buffer_size=1000000;SET @@global.sort_buffer_size=1000000;
    -- Syntax to
     Set value to a Session variable:SET sort_buffer_size=1000000;SET SESSION sort_buffer_size=1000000;SET @@sort_buffer_size
     =1000000;SET @@local.sort_buffer_size=10000;


查看完整回答
反對 回復 2019-07-11
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

SET @var_name = value

SET @var := value

兩個算子=:=被接受


選擇

SELECT col1, @var_name := col2 from tb_name WHERE "conditon";

如果多個記錄集僅找到col2中的最后一個值,則保留(覆蓋);

SELECT col1, col2 INTO @var_name, col3 FROM .....

在這種情況下,select的結果不包含col2值。


查看完整回答
反對 回復 2019-07-11
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

聲明var_name[,var_name].輸入[默認值]此語句聲明存儲程序中的局部變量。

前。聲明id int無符號默認值1;

若要為變量提供默認值,請包含默認子句。該值可以指定為表達式;它不一定是常量。如果缺少默認子句,則初始值為NULL。

局部變量在數據類型和溢出檢查方面被視為存儲的例程參數。

變量聲明必須出現在游標或處理程序聲明之前。

局部變量名稱不區分大小寫。允許的字符和引用規則與其他標識符相同。

局部變量的作用域是開始.在其中聲明它的結束塊。該變量可以在嵌套在聲明塊內的塊中引用,但聲明同名變量的塊除外。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 2742 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號