欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql中怎么統(tǒng)計(jì)個(gè)數(shù)的簡(jiǎn)單介紹

Mysql數(shù)據(jù)庫(kù)一個(gè)字段內(nèi)多個(gè)值如何統(tǒng)計(jì)個(gè)數(shù)

CREATE?TABLE?person?(

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)陽(yáng)光房等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化排名優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

name??varchar(20)

);

INSERT?INTO?person?VALUES?('a,b,c');

INSERT?INTO?person?VALUES?('a,b');

INSERT?INTO?person?VALUES?('a,c');

DELIMITER?//

DROP?FUNCTION?GetTextCount?//

/**********

--?獲取字符串中有幾個(gè)部分.

**********/

CREATE?FUNCTION?GetTextCount(pSourceText??VARCHAR(255),??pDivChar??CHAR(1))

RETURNS?TINYINT

BEGIN

--?預(yù)期結(jié)果.?

DECLARE?vResult?TINYINT;

--?當(dāng)前逗號(hào)的位置.

DECLARE?vIndex?INT;

--?前一個(gè)逗號(hào)的位置.

DECLARE?vPrevIndex?INT;

--?結(jié)果的初始值.

SET?vResult?=?1;

--?查詢第一個(gè)?逗號(hào)的位置.

SET?vIndex?=?INSTR(pSourceText,?pDivChar);

IF?vIndex?=?0?THEN

--?參數(shù)中沒(méi)有逗號(hào),直接返回.

RETURN?vResult;

END?IF;

--?初始化情況,前一個(gè)逗號(hào)不存在.

SET?vPrevIndex?=?0;

--?循環(huán)處理。

WHILE?vIndex??0?DO

--?結(jié)果遞增.

SET?vResult?=?vResult?+?1;

--?前一個(gè)逗號(hào)的位置?=?當(dāng)前逗號(hào)的位置

SET?vPrevIndex?=?vIndex;

--?查詢下一個(gè)逗號(hào)的位置.

SET?vIndex?=?LOCATE(pDivChar,??pSourceText,??vPrevIndex?+?1);

END?WHILE;

--?返回結(jié)果.

RETURN?vResult;

END;

//

DROP?FUNCTION?GetTextValue?//

/**********

--?獲取字符串中具體某一個(gè)部分的數(shù)據(jù).

**********/

CREATE?FUNCTION?GetTextValue(pSourceText??VARCHAR(255),??pDivChar??CHAR(1),?pIndex??TINYINT)

RETURNS?VARCHAR(255)?

BEGIN

--?預(yù)期結(jié)果.?

DECLARE?vResult?VARCHAR(255);

IF?pIndex?=?1?THEN

SELECT?SUBSTRING_INDEX(pSourceText,??pDivChar,??1)??INTO??vResult;

ELSE

SELECT?

REPLACE(

SUBSTRING_INDEX(pSourceText,??pDivChar,??pIndex),

CONCAT(SUBSTRING_INDEX(pSourceText,??pDivChar,??pIndex?-?1)?,?pDivChar),

'')?INTO??vResult;

END?IF;

--?返回.

RETURN?vResult;

END;

//

DELIMITER?;

SELECT

GetTextValue(t.name,?',',?MaxNum.No)?AS?`名稱`,

COUNT(*)?AS?`個(gè)數(shù)`

FROM

person?t,

(SELECT?1?No?UNION?ALL

?SELECT?2?No?UNION?ALL

?SELECT?3?No?UNION?ALL

?SELECT?4?No?UNION?ALL

?SELECT?5?No?)?MaxNum

WHERE

GetTextCount(t.name,?',')?=?MaxNum.No

GROUP?BY

GetTextValue(t.name,?',',?MaxNum.No);

+------+------+

|?名稱?|?個(gè)數(shù)?|

+------+------+

|?a????|????3?|

|?b????|????2?|

|?c????|????2?|

+------+------+

3?rows?in?set?(0.01?sec)

MySQL利用count()函數(shù)統(tǒng)計(jì)總數(shù)的技巧

2020-03-01

對(duì)于count的函數(shù)的使用,我們常見(jiàn)的一個(gè)錯(cuò)誤是在括號(hào)內(nèi)隨意指定一個(gè)列去統(tǒng)計(jì)結(jié)果集的行數(shù)。但只有指定的行確實(shí)都是有值的時(shí)候,統(tǒng)計(jì)的才是實(shí)際的行數(shù),否則可能統(tǒng)計(jì)的結(jié)果并不是實(shí)際的行數(shù)。而對(duì)于MyISAM存儲(chǔ)引擎,如果某一列的值確實(shí)不可能為null時(shí),MySQL內(nèi)部就會(huì)將count()函數(shù)優(yōu)化成count(*),若沒(méi)有帶where條件,此時(shí)計(jì)算速度是非常快的,因?yàn)榇藭r(shí)沒(méi)有實(shí)際的去計(jì)算表的行數(shù)。

總結(jié): 對(duì)于MyISAM存儲(chǔ)引擎,不帶where條件的count(*)是非常快的。

技巧:

利用上述MyISAM的count(* )特性,加速一些特定查詢條件的count()查詢。

如:

對(duì)于select count(* ) from tablename where id 10; 可以做如下的反轉(zhuǎn)查詢:

select (select count(* ) from tablename) - count(* ) from tablename where id 10;

因?yàn)檫@樣在查詢階段MySQL將子查詢當(dāng)做一個(gè)常數(shù)來(lái)處理,大大減少了掃描的行數(shù)。

mysql一條sql怎么統(tǒng)計(jì)某個(gè)字段不同值的個(gè)數(shù)?

以時(shí)間為跨度統(tǒng)計(jì)不同的值,在該時(shí)間出現(xiàn)的次數(shù)。

語(yǔ)言如下:

select count(*),'列名' from tablename group by '列名'

select count(*),a_yqm from user group by a_yqm

舉例:

這里,我要查詢出1年內(nèi)每個(gè)月份periods字段不同值的次數(shù)。

比如下圖中可見(jiàn)的2015-4月,periods為2出現(xiàn)了3次,3出現(xiàn)了1次,最關(guān)鍵的是 periods你不知道有多少種可能的值,也許這個(gè)月有1,也許沒(méi)有。

新聞標(biāo)題:mysql中怎么統(tǒng)計(jì)個(gè)數(shù)的簡(jiǎn)單介紹
文章路徑:http://www.chinadenli.net/article28/hpgpjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司虛擬主機(jī)品牌網(wǎng)站設(shè)計(jì)全網(wǎng)營(yíng)銷推廣網(wǎng)站策劃微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)