欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中符號(hào)@的作用

 更新時(shí)間:2022年06月27日 11:13:25   作者:Gan_1314  
本文主要介紹了MySQL中符號(hào)@的作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

select @a;

變量名,如果你不加的話,會(huì)認(rèn)為這是一個(gè)列名,但是這列不存在,就報(bào)錯(cuò)了;

  • @變量名 : 定義一個(gè)用戶變量.
  • = 對(duì)該用戶變量進(jìn)行賦值.

用戶變量賦值有兩種方式: 一種是直接用"=“號(hào),另一種是用”:=“號(hào)。

其區(qū)別在于:

  • 使用set命令對(duì)用戶變量進(jìn)行賦值時(shí),兩種方式都可以使用;
  • 用select語(yǔ)句時(shí),只能用”:=“方式,因?yàn)閟elect語(yǔ)句中,”="號(hào)被看作是比較操作符。

(@i:=@i+1)

可以在生成查詢結(jié)果表的時(shí)候生成一組遞增的序列號(hào)

select (@i:=@i+5) as rownum, surname, personal_name from student, (select @i:=100) as init;

select @ids := 101,@l := 0

GROUP_CONCAT + group by

按照分組,連接字段上的數(shù)據(jù),默認(rèn)以,,也可以指定分割符

mysql的@用法

1,增加臨時(shí)表,實(shí)現(xiàn)變量的自增

SELECT (@i:=@i+1),t.* FROM table_name t,(SELECT @i:=0) AS j

(@i:=@i+1)代表定義一個(gè)變量,每次疊加1;
(SELECT @i:=0) AS j 代表建立一個(gè)臨時(shí)表,j是隨便取的表名,但別名一定要的。

2,實(shí)現(xiàn)排序遞增

SELECT
	( @i := @i + 1 ),
	p.* 
FROM
	( SELECT * FROM sys_region ORDER BY create_time DESC ) p, ( SELECT @i := 0 ) k

在這里插入圖片描述

3,實(shí)現(xiàn)分組遞增

SELECT
	@r := CASE WHEN @type = a.LEVEL THEN 
			@r + 1 
		ELSE 
			1 
		END AS rowNum,
	@type := a.`level` AS type,
	a.id 
FROM
	sys_region a,( SELECT @r := 0, @type := '' ) b;

在這里插入圖片描述

這里用了臨時(shí)變量@type,因?yàn)閷?duì)臨時(shí)變量操作的時(shí)候,被使用的變量都是臨時(shí)變量。

實(shí)戰(zhàn)

INSERT INTO t_top ( col_account, col_date, p_account, p_name )

SELECT b.col_account, b.col_date, b.p_account, b.p_name FROM
(
	SELECT
		@num := CASE WHEN @account = a.col_account THEN 
				@num + 1 
			ELSE 
				1 
			END AS rownum,
		@account := a.col_account AS account,
		a.* 
	FROM
		( SELECT * FROM zb_top  ORDER BY col_account, p_avg DESC ) a,
	( SELECT @num := 0, @account := '' ) j
) b where 6 > b.rownum

計(jì)算用戶距上次訪問(wèn)的天數(shù),根據(jù)imei號(hào)區(qū)分不同的用戶,如果時(shí)間段內(nèi)只有一次訪問(wèn)則為0。

初始化數(shù)據(jù):
代碼示例:

CREATE TABLE `pd` (
	`imei` varchar(32) NOT NULL DEFAULT '',
	`date` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `pd` VALUES ('1', '2013-07-25 00:00:01');
INSERT INTO `pd` VALUES ('1', '2013-07-26 00:00:02');
INSERT INTO `pd` VALUES ('2', '2013-07-23 00:00:04');
INSERT INTO `pd` VALUES ('2', '2013-07-26 00:00:03');
INSERT INTO `pd` VALUES ('3', '2013-07-26 00:00:01');

腳本,使用@特殊變量:
代碼示例:

SELECT * FROM
(
	SELECT
		imei user_id,
		max(max_dd),
		max(max_dd_2),
		to_days(max(max_dd)) - to_days(max(max_dd_2)) days 
	FROM
		(
			SELECT
				imei,
				max_dd,
				max_dd_2 
			FROM
				(
					SELECT
						tmp.imei,
						tmp.date,
						IF(@imei = tmp.imei, @rank := @rank + 1, @rank := 1) AS ranks,
						IF(@rank = 1, @max_d := tmp.date, @max_d := NULL) AS max_dd,
						IF(@rank = 2, @max_d_2 := tmp.date, @max_d_2 := NULL) AS max_dd_2,
						@imei := tmp.imei 
					FROM
						(SELECT imei, date FROM pd ORDER BY imei ASC, date DESC) tmp,
						(SELECT @rownum := 0, @imei := NULL, @rank := 0, @max_d := NULL, @max_d_2 := NULL) a 
				) result 
		) t 
	GROUP BY
		imei 
	HAVING
		count(*) > 1 
) x WHERE x.days >= 1 AND EXISTS (SELECT 'x' FROM pd WHERE date > '2013-07-26 00:00:00')

在這里插入圖片描述

注意:
表數(shù)據(jù)量較大時(shí),使用union all等操作將會(huì)有悲劇性的結(jié)果。

到此這篇關(guān)于MySQL中符號(hào)@的作用的文章就介紹到這了,更多相關(guān)MySQL 符號(hào)@內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySql修改密碼后phpMyAdmin無(wú)法登陸的解決方法

    MySql修改密碼后phpMyAdmin無(wú)法登陸的解決方法

    這篇文章主要為大家詳細(xì)介紹了MySql修改密碼后PhpMyAdmin無(wú)法登陸的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • getdata table表格數(shù)據(jù)join mysql方法

    getdata table表格數(shù)據(jù)join mysql方法

    今天小編就為大家分享一篇關(guān)于getdata table表格數(shù)據(jù)join mysql方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • MySQL快速對(duì)比數(shù)據(jù)技巧

    MySQL快速對(duì)比數(shù)據(jù)技巧

    這篇文章主要介紹了MySQL快速對(duì)比數(shù)據(jù)的方法以及技巧分享,如果對(duì)此有興趣,一起跟著小編學(xué)習(xí)下吧。
    2018-02-02
  • MySQL 從全庫(kù)備份中恢復(fù)指定的表和庫(kù)示例

    MySQL 從全庫(kù)備份中恢復(fù)指定的表和庫(kù)示例

    這篇文章主要介紹了MySQL 從全庫(kù)備份中恢復(fù)指定的表和庫(kù)示例的相關(guān)資料,這里提供了相應(yīng)的方法,來(lái)實(shí)現(xiàn)恢復(fù)指定的表和庫(kù)數(shù)據(jù),需要的朋友可以參考下
    2016-11-11
  • 詳解 Mysql查詢結(jié)果順序按 in() 中ID 的順序排列

    詳解 Mysql查詢結(jié)果順序按 in() 中ID 的順序排列

    這篇文章主要介紹了詳解 Mysql查詢結(jié)果順序按 in() 中ID 的順序排列的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • MySQL入門(mén)(五) MySQL中的索引詳講

    MySQL入門(mén)(五) MySQL中的索引詳講

    之前寫(xiě)到MySQL對(duì)表的增刪改查(查詢最為重要)后,就感覺(jué)MySQL就差不多學(xué)完了,沒(méi)有想繼續(xù)學(xué)下去的心態(tài)了,原因可能是由于別人的影響,覺(jué)得對(duì)于MySQL來(lái)說(shuō),知道了一些復(fù)雜的查詢,就夠了
    2018-07-07
  • MySQL 觸發(fā)器的使用及需要注意的地方

    MySQL 觸發(fā)器的使用及需要注意的地方

    這篇文章主要介紹了MySQL 觸發(fā)器的使用及需要注意的地方,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01
  • MySQL 創(chuàng)建主鍵,外鍵和復(fù)合主鍵的語(yǔ)句

    MySQL 創(chuàng)建主鍵,外鍵和復(fù)合主鍵的語(yǔ)句

    MySQL 創(chuàng)建主鍵,外鍵和復(fù)合主鍵的方法,需要的朋友可以參考下。
    2009-12-12
  • 詳解MySQL(InnoDB)是如何處理死鎖的

    詳解MySQL(InnoDB)是如何處理死鎖的

    這篇文章主要介紹了MySQL(InnoDB)是如何處理死鎖的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • mysql如何導(dǎo)出服務(wù)器內(nèi)所有的數(shù)據(jù)庫(kù)

    mysql如何導(dǎo)出服務(wù)器內(nèi)所有的數(shù)據(jù)庫(kù)

    這篇文章主要介紹了mysql如何導(dǎo)出服務(wù)器內(nèi)所有的數(shù)據(jù)庫(kù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論