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

mysql?count()函數(shù)不計(jì)算null和空值問題

 更新時(shí)間:2023年08月12日 16:17:35   作者:吃香菜也吃西紅柿  
這篇文章主要介紹了mysql?count()函數(shù)不計(jì)算null和空值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql count()函數(shù)不計(jì)算null和空值

解決方案(二選一)

1. 在做統(tǒng)計(jì)時(shí)判斷count的字段不為null和空

SELECT workPost AS name,COUNT(workPost) as value FROM graduateinfo
? ? ? ?where workPost is not null and workPost != ''

2. 前端過濾數(shù)據(jù)

踩坑

網(wǎng)上大部分解決方案都是說count(字段)就能解決,我自己用了并沒有效果。

mysql中的空值 Null 和空字符‘‘

1. 空值 Null 和空字符 ''

日常開發(fā)中,一般都會涉及到數(shù)據(jù)庫增刪改查,那么不可避免會遇到 MySQL 中的 NULL 和空字符 '' ,二者表面上看都是空,其實(shí)存在一些差異的

  • 空值 NULL 的長度是 NULL ,不確定占用了多少存儲空間,它是占用存儲空間的
  • 空字符串 '' 的長度是 0 ,是不占用空間的

通俗的講:空字符串 '' 就像是一個(gè)真空狀態(tài)的杯子,什么都沒有;而空值 NULL 就像是一個(gè)裝滿空氣的杯子,是有東西的。二者雖然看起來都是空的、透明的,但是有著本質(zhì)的區(qū)別

2. 空值 Null 和空字符 '' 在查詢方式上的對比

2.1. 創(chuàng)建 SQL 腳本

CREATE TABLE `test_1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;
--插入數(shù)據(jù)
INSERT INTO test_1 VALUES(1,'李斯','111111');
INSERT INTO test_1 VALUES(2,'','');
INSERT INTO test_1 VALUES(3,null,'');
INSERT INTO test_1 VALUES(4,null,1);

表中的數(shù)據(jù)如下,注意 null 值與 ''

2.2. 查詢 username 列為空字符串 '' 的所有數(shù)據(jù)

2.3. 查詢 username 列為空值 null 的所有數(shù)據(jù)

  • 2.3.1. 錯(cuò)誤 SQL

  • 2.3.2. 正確 SQL

2.4. 查詢 username 列不為空值 null 的所有數(shù)據(jù)

  • 2.4.1. 錯(cuò)誤 SQL

  • 2.4.2. 正確 SQL

比較字符 =,>,< ,<> , != 都不能用于查詢比較 null 值,如果需要查詢空值 null ,必須使用 is null is not null 空值 '' 可以使用 =, !=, <, > 等算術(shù)運(yùn)算符來查詢的

3. 空值Null和空字符 '' 在 count() 函數(shù)查詢的對比

3.1. 查詢 username 列數(shù)據(jù)總數(shù)

使用 count() 的時(shí)候,空值 null 并不會被當(dāng)成有效值去統(tǒng)計(jì)的空字符串 '' 是會被 count() 函數(shù)所統(tǒng)計(jì)的

4. MySQL中的比較運(yùn)算符

運(yùn)算符含義
=等于
<=>安全等于,可以比較 null
<> 或 !=不等于
>=大于等于
<=小于等于
>大于
<小于
IS NULL判斷一個(gè)值是否為 null
IS NOT NULL判斷一個(gè)值是否不為 null

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql中通過生日計(jì)算年齡的多種方法

    Mysql中通過生日計(jì)算年齡的多種方法

    本文給大家分享mysql通過生日計(jì)算年齡的方法,每一種方法都非常不錯(cuò),需要的朋友參考下吧
    2018-03-03
  • MySQL出現(xiàn)2003錯(cuò)誤的三種解決方法

    MySQL出現(xiàn)2003錯(cuò)誤的三種解決方法

    本文主要介紹了MySQL出現(xiàn)2003錯(cuò)誤的解決方法,主要介紹了3種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • MySQL避免插入重復(fù)記錄的方法

    MySQL避免插入重復(fù)記錄的方法

    這篇文章主要介紹了MySQL避免插入重復(fù)記錄的方法,需要的朋友可以參考下
    2023-10-10
  • MySQL密碼正確卻無法本地登錄的解決方法

    MySQL密碼正確卻無法本地登錄的解決方法

    這篇文章主要介紹了MySQL密碼正確卻無法本地登錄的解決方法,需要的朋友可以參考下
    2014-12-12
  • MySQL字段值如何區(qū)分大小寫問題

    MySQL字段值如何區(qū)分大小寫問題

    這篇文章主要介紹了MySQL字段值如何區(qū)分大小寫問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Windows安裝MySQL8.0.28.0.msi方式(圖文詳解)

    Windows安裝MySQL8.0.28.0.msi方式(圖文詳解)

    這篇文章主要介紹了Windows安裝MySQL8.0.28.0.msi,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • MySQL Threads_running飆升與慢查詢的相關(guān)問題解決

    MySQL Threads_running飆升與慢查詢的相關(guān)問題解決

    這篇文章主要介紹了MySQL Threads_running飆升與慢查詢的問題解決,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-05-05
  • Linux下mysql 5.7 部署及遠(yuǎn)程訪問配置

    Linux下mysql 5.7 部署及遠(yuǎn)程訪問配置

    這篇文章主要為大家詳細(xì)介紹了Linux下mysql 5.7 部署及遠(yuǎn)程訪問的配置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL處理重復(fù)數(shù)據(jù)插入的處理方案

    MySQL處理重復(fù)數(shù)據(jù)插入的處理方案

    在數(shù)據(jù)庫操作中,處理重復(fù)數(shù)據(jù)插入是一個(gè)常見的需求,特別是在批量插入數(shù)據(jù)時(shí),可能會遇到主鍵沖突或唯一鍵沖突(Duplicate entry)的情況,本文將以一個(gè)實(shí)際的Python MySQL數(shù)據(jù)庫操作為例,分析如何優(yōu)化異常處理邏輯,需要的朋友可以參考下
    2025-04-04
  • 深入理解Mysql事務(wù)隔離級別與鎖機(jī)制問題

    深入理解Mysql事務(wù)隔離級別與鎖機(jī)制問題

    MySQL默認(rèn)的事務(wù)隔離級別是可重復(fù)讀,用Spring開發(fā)程序時(shí),如果不設(shè)置隔離級別默認(rèn)用MySQL設(shè)置的隔離級別,如果Spring設(shè)置了就用已設(shè)置的隔離級別,本文重點(diǎn)給大家介紹Mysql事務(wù)隔離級別與鎖機(jī)制的相關(guān)知識,一起看看吧
    2021-09-09

最新評論