最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解mysql中if函數(shù)的正確使用姿勢(shì)

 更新時(shí)間:2019年11月04日 09:04:20   作者:執(zhí)偕  
這篇文章主要介紹了詳解mysql中if函數(shù)的正確使用姿勢(shì),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

為了今天要寫的內(nèi)容,運(yùn)行了將近7個(gè)小時(shí)的程序,在數(shù)據(jù)庫(kù)中存儲(chǔ)了1千萬(wàn)條數(shù)據(jù)?!?br />

今天要說(shuō)的是mysql數(shù)據(jù)庫(kù)的IF()函數(shù)的一個(gè)實(shí)例。

具體場(chǎng)景如下,

先看看表結(jié)構(gòu):

CREATE TABLE `message` (
 `id` varchar(30) NOT NULL,
 `title` varchar(30) DEFAULT NULL,
 `content` text,
 `send_time` datetime DEFAULT NULL,
 `type` int(1) DEFAULT NULL COMMENT '1:系統(tǒng)通知,2:投訴建議',
 `status` int(1) DEFAULT NULL COMMENT '0:待發(fā)送,1:成功,2:失敗',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

具體要求是:分別統(tǒng)計(jì)系統(tǒng)通知和投訴建議兩種消息的總條數(shù)、成功條數(shù)和失敗條數(shù)。

遇到這樣的問題,我們一般的思路就是用type分組,分別查詢系統(tǒng)通知和投訴建議的總條數(shù),然后用兩個(gè)子查詢來(lái)統(tǒng)計(jì)成功條數(shù)和失敗條數(shù)。sql如下:

SELECT
 COUNT(1)  total,
 m.type,
 (SELECT
   COUNT(1)
  FROM message ms
  WHERE ms.status = 1
    AND m.type = ms.type)  successtotal,
 (SELECT
   COUNT(1)
  FROM message mf
  WHERE mf.status = 1
    AND m.type = mf.type)  failtotal
FROM message m
GROUP BY m.type

我們看看運(yùn)行時(shí)間,統(tǒng)計(jì)1千萬(wàn)條數(shù)據(jù)大概需要6分18秒。

那么有沒有更簡(jiǎn)單,更快的統(tǒng)計(jì)方式呢,當(dāng)然是有的,就是我們今天主要講的if()函數(shù)。

基本語(yǔ)法

IF(expr1,expr2,expr3),如果expr1的值為true,則返回expr2的值,如果expr1的值為false,則返回expr3的值。就是一個(gè)簡(jiǎn)單的三目表達(dá)式。

如何做

說(shuō)說(shuō)思路,假如我們統(tǒng)計(jì)成功條數(shù),我們可以這樣寫if(status=1,1,0),這樣如果status==1,則返回1,否則返回0。然后我們通過SUM()函數(shù)將成功條數(shù)相加即可。

實(shí)現(xiàn)方式

sql語(yǔ)句如下:

SELECT
 COUNT(1)  total,
 m.type,
 SUM(IF(m.status = 1,1,0))  successtotal,
 SUM(IF(m.status != 1,1,0))  failtotal
FROM message m
GROUP BY m.type;

看著是不是比上面的子查詢簡(jiǎn)潔多了,我們來(lái)看看運(yùn)行時(shí)間,只有1分30秒。是不是快多了。

那么,今天你學(xué)會(huì)了嗎?

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL外鍵使用詳解

    MySQL外鍵使用詳解

    兩天有人問mysql中如何加外鍵,今天抽時(shí)間總結(jié)一下。mysql中MyISAM和InnoDB存儲(chǔ)引擎都支持外鍵(foreign key),但是MyISAM只能支持語(yǔ)法,卻不能實(shí)際使用。
    2015-03-03
  • MySQL修改時(shí)區(qū)的方法小結(jié)

    MySQL修改時(shí)區(qū)的方法小結(jié)

    這篇文章主要介紹了MySQL修改時(shí)區(qū)的方法,總結(jié)分析了三種常見的MySQL時(shí)區(qū)修改技巧,包括命令行模式、配置文件方式及代碼方式,需要的朋友可以參考下
    2016-05-05
  • Mysql+Keepalived實(shí)現(xiàn)雙主熱備方式

    Mysql+Keepalived實(shí)現(xiàn)雙主熱備方式

    這篇文章主要介紹了Mysql+Keepalived實(shí)現(xiàn)雙主熱備方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • MySQL 5.7.17 免安裝版本的安裝配置

    MySQL 5.7.17 免安裝版本的安裝配置

    這篇文章主要為大家詳細(xì)介紹了MySQL 5.7.17 免安裝版本的安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 解決mysql創(chuàng)建數(shù)據(jù)庫(kù)后出現(xiàn):Access denied for user ''root''@''%'' to database ''xxx''的問題

    解決mysql創(chuàng)建數(shù)據(jù)庫(kù)后出現(xiàn):Access denied for user ''root''@''%'' to dat

    這篇文章主要給大家介紹了如何解決mysql在創(chuàng)建數(shù)據(jù)庫(kù)后出現(xiàn):Access denied for user 'root'@'%' to database 'xxx'的錯(cuò)誤提示,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-05-05
  • MySQL的鎖機(jī)制使用詳解

    MySQL的鎖機(jī)制使用詳解

    這篇文章主要介紹了MySQL的鎖機(jī)制使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL Truncate用法詳解

    MySQL Truncate用法詳解

    這篇文章主要介紹了MySQL Truncate用法的相關(guān)資料,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL為何不建議使用默認(rèn)值為null列

    MySQL為何不建議使用默認(rèn)值為null列

    本文主要介紹了MySQL為何不建議使用默認(rèn)值為null列,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MySQL 啟動(dòng)失敗(code=exited, status=1/FAILURE)異常解決方案

    MySQL 啟動(dòng)失敗(code=exited, status=1/FAILURE)異常解決方案

    在MySQL服務(wù)啟動(dòng)時(shí)遇到啟動(dòng)失敗問題,通過查看和分析錯(cuò)誤日志文件,找到并解決了配置文件中的錯(cuò)誤項(xiàng),成功重啟了MySQL服務(wù).文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Mysql體系化探討令人頭疼的JOIN運(yùn)算

    Mysql體系化探討令人頭疼的JOIN運(yùn)算

    這篇文章主要介紹了體系化探討令人頭疼的JOIN運(yùn)算,本文將對(duì)JOIN運(yùn)算進(jìn)行體系化深入的探討,根據(jù)自己工作經(jīng)驗(yàn)及參考業(yè)界經(jīng)典案例,針對(duì)性地提出語(yǔ)法簡(jiǎn)化和性能優(yōu)化的方法論,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

梧州市| 陇南市| 白山市| 南陵县| 中牟县| 宾川县| 博客| 平泉县| 六枝特区| 阿合奇县| 三门峡市| 锡林浩特市| 乡宁县| 杂多县| 文成县| 新巴尔虎右旗| 湘阴县| 正安县| 呼和浩特市| 额济纳旗| 平武县| 邯郸县| 青田县| 元朗区| 永福县| 巴南区| 柯坪县| 苍南县| 安图县| 吕梁市| 赞皇县| 炎陵县| 德兴市| 胶州市| 陵川县| 新民市| 克山县| 江城| 兰州市| 合作市| 渭源县|