zoukankan      html  css  js  c++  java
  • null值是不会算在count以内的

    做统计的时候,null是不计算在count以内的。所以字段的值最好不要设置为null。


    比如:select count(user_id) as beyond_num from fs_users_added where credits<410 && user_id!=75语句,就统计不到null的数据行。

    我需要统计出多少个用户的学分比这个低。计算排名。结果由于credits值有null的情况,造成了数据统计不准确。明明是90个用户超过,结果算出来是54个用户。



    解决办法是:创建字段的时候,设置为not null。或者一个默认值0



    如果允许为null,没有插入值的情况下,默认被mysql给字段一个默认值是null,此时即便是后续使用如下语句修改掉字段的默认值:


    ALTER TABLE `table_name`
    MODIFY COLUMN `credits`  float(10,2) UNSIGNED NULL DEFAULT 0 COMMENT '用户学分' AFTER `user_id`;


    原来存储进去的null值也不会改变。于是造成了麻烦。


    此时的解决办法是:使用如下语句,对值为null的行都设置成一个默认值0

    update table_name set credits=0 where credits is null

    null与空值的区别

     

    1、null值就是null,空值是'',两个引号(单引号双引号都可以吗?)

    2、null值是会占用空间的。空值是不占用空间的。

    3、B树索引时不会存储NULL值的(也恰好解释了,使用语句count统计的的时候不会计算在内)。MySQL字段尽量避免NULL,应该指定列为NOT NULL。然后给字段设置一个默认值0或者空''。

  • 相关阅读:
    50.Ext_数字输入框_Ext.form.NumberField
    49.Ext.form.TextField()基本用法
    48.EXt.Data.JsonReader()
    47. Ext.form.Field.prototype.msgTarget
    46. Ext中namespace的作用(转)
    45. ExtJS ComboBox 下拉列表详细用法
    44. Ext信息提示对话框
    43. ExtJs控件属性配置详细
    42.extjs Combobox动态加载数据问题,mode:local 还是remote
    堆叠顺序
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/6264784.html
Copyright © 2011-2022 走看看