91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么自定義變量

發布時間:2021-07-13 16:19:25 來源:億速云 閱讀:193 作者:Leah 欄目:數據庫

MySQL中怎么自定義變量,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1.自定義變量---自我介紹

大家好,我是mysql自定義變量,和其他的自定義變量一樣,你們可以把我當作一個小盒子,如果想要召喚我只要大喊一聲

set @ver:='x'

就可以召喚出自定義變量本量,順便把x放裝進了盒子。

當然我除了可以裝x,

還可以裝b,心中默念 set @ver:='b' 就可以裝逼成功

如果心情不好我還可以啥也不裝

比如set @ver:=0

如果召喚我請珍惜我,因為我在一次mysql鏈接中有效。

不要以為我只能散裝,把我安裝在生產線上照樣能行。

比如某條sql生產出來一個指標需要存一下,只需要把結果into我就行了,具體操作如下:

select count(1) into @ver from table

想跟裝進去的東西確認眼神么?select @ver,馬上告訴你盒子里現在裝了個啥

我一般不會單獨存在,而是內嵌到sql語句里面作為一個存儲中間變量的容器,如果想知道和我sql語句之間是怎么配合的,就不得不了解一下我的小老弟---sql

2,SQL的自我簡介

大家好,我是SQL,是一種數據庫操作的工具,也是自定義變量的好大哥。如果能配合EXCEL來了解我,就會發現我不是一個慢熱的人。能動手咱就不bb,舉個栗子讓你看一下我們倆有多像

栗子如下:

select id from  (select id from table1 ) a  join (select id from table2) b on a.id=b.id where a.id>=100 order by id

首先我要執行子查詢,也就是把a和b兩個中間表搞出來(ab兩個表可以理解為excle的兩個sheet)

然后我再執行join語句,對兩個表根據id進行笛卡爾乘積,得到兩個表的全部信息(主鍵唯一的情況下可以理解為excel的vlookup)

當然有些信息并不是我們需要的,怎么過濾呢,用where語句(相當于excel的篩選功能)

最終以order by 對最終結果進行排序(對應excel的排序功能)

下面說一點細節可以加深我和自定義標量之間的合作方式

當我select 想要的列時候(select id from  table)可以看成是讀取了一列id,也可以看成是一行一行讀取id列,每取一條記錄,游標往下走一格,當遍歷完所有的數據之后再呈現給我們一列id。按照第二種方式相當于是python遍歷數組,中間自然可以加一些變量來存儲一些數據。

有點抽象?舉個例子~

3,舉幾個栗子

某個數據表格記錄了AB兩個店每個小時的營業額,原始數據如下

CREATE TABLE `wk_test` ( `date` varchar(20) NOT NULL COMMENT '日期', `shop` varchar(255) NOT NULL COMMENT '商店', `hour` int(11) NOT NULL COMMENT '小時', `income` int(11) NOT NULL COMMENT '收入', PRIMARY KEY (`date`,`shop`,`hour`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

 MySQL中怎么自定義變量

1.如何觀察每天某個時間點A,B兩個店的分別的累計營業額?

按照上面所說的原理,如果每讀出一條記錄相當于游標往下走一下,我們在遍歷數據的過程中用變量對中間結果進行記錄和判斷,那么就能實現上述需求,代碼如下:

--初始化變量  set @cosum:=0;  set @dates:=''; set @shop:='';  select date,shop,hour,income,    @group_income:=  --判斷是否是同一天的同一個商店  case when @dates=a.date and @shop=a.shop  --是一個則累加  then @cosum:=@cosum+income  --不是則將第一個小時的值賦值給累加量  else @cosum:=a.income  end as group_income, --保存當前用于判斷的變量 @dates:=a.date, @shop:=a.shop from (select * from wk_test order by date,shop,hour) a

結果如下:

MySQL中怎么自定義變量

2.用自定義變量實現row_number()over 開窗mysq不支持開窗函數,但是引入自定義變量就能實現相同的效果,具體實現代碼如下:

set @row_number:=0; set @dates:=''; set @shop:='';  select date,shop,hour,income, @num:=case when @dates=a.date and @shop=a.shop then @row_number:=@row_number+1 else @row_number:=1 end as group_income,  @dates:=a.date, @shop:=a.shop from (select * from wk_test order by date,shop,hour) a

結果如下:

MySQL中怎么自定義變量

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

易门县| 东方市| 天长市| 达拉特旗| 云林县| 南投市| 济源市| 威宁| 铅山县| 马尔康县| 建宁县| 梅州市| 秀山| 奎屯市| 长治市| 古丈县| 凤冈县| 岳阳市| 炎陵县| 富阳市| 左权县| 乌兰县| 琼海市| 汕头市| 常州市| 客服| 阳江市| 突泉县| 林周县| 临武县| 德兴市| 长泰县| 图片| 凌云县| 江达县| 肇州县| 武胜县| 盐池县| 健康| 夏河县| 江阴市|