代码之家  ›  专栏  ›  技术社区  ›  EmmyS

查询值为空,MySQL中为0.00

  •  3
  • EmmyS  · 技术社区  · 14 年前

    我有一个动态编写的查询(通过joomla编写oo php),用于将一些值插入到MySQL数据库中。用户填写的表单上有一个金额为美元的字段,如果保留为空,我希望进入系统的值为空。在运行错误日志时,我已将查询写出;查询如下所示:

    INSERT INTO arrc_Voucher 
      (VoucherNbr,securityCode,sequentialNumber, TypeFlag, CreateDT, ActivatedDT, BalanceInit,  BalanceCurrent, clientName)     
    VALUES
      ('6032100199108006', '99108006','12','V','2010-10-29 12:50:01','NULL','NULL','NULL','')
    

    但是,当我在数据库表中查找时,尽管activateddt正确设置为空,balanceInit和balanceCurrent都是0.00。activateddt字段是一个日期时间,而其他两个字段是十进制(18,2),并且所有三个字段都在表结构中设置为默认值NULL。

    如果我运行这样的查询:

    UPDATE arrc_Voucher 
       SET BalanceInit = null 
    WHERE BalanceInit like "0%"
    

    …它确实将值设置为空,那么为什么初始插入查询不这样做呢?是因为引号中有空值吗?如果是这样,为什么要正确设置activateddt?

    3 回复  |  直到 12 年前
        1
  •  6
  •   Brad Mace Mike King    12 年前

    NULL 'NULL' 0

    NO_ZERO_DATE

    STRICT_ALL_TABLES STRICT_TRANS_TABLES TRADITIONAL

    SET sql_mode='TRADITIONAL' sql-mode="TRADITIONAL" my.cnf

        2
  •  3
  •   Scott    14 年前

        3
  •  2
  •   Klaus Byskov Pedersen    14 年前

    NULL 'NULL'