摘要:
mysql为什么数据库有默认值结果为null?在MySQL中,字段设置了默认值,并且字段可空的情况下,在插入数据时,如果此字段传入的是“NULL”,则保存为NULL;如果此字段传入...
mysql为什么数据库有默认值结果为null?
在MySQL中,字段设置了默认值,并且字段可空的情况下,在插入数据时,如果此字段传入的是“NULL”,则保存为NULL;如果此字段传入的是“DEFAULT”,则保存为默认值。
为什么会这样呢,试想一下,假如需要此字段的数据保存为NULL的时候,传入了NULL,而结果又为默认值,是不是就会出现问题。所以传入NULL,其结果就为NULL。
这里举个例子,如果一张表中有3个字段,分别是姓名、年龄、性别,其中性别设置了默认值,那么性别保存为默认值的SQL语法为“INSERT INTO USER VALUES ('张三', 20, DEFAULT)”,保存为NULL的SQL语法为“INSERT INTO USER VALUES ('张三', 20, NULL)”。
图片来源:网络
MySQL唯一索引的字段为null好不好?
创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。
唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引。MySql参数化查询结果为空?
可以用ifnull处理,如下:
SELECT IF ( ifnull( 字段, '' ) = '', '返回的字符串', 字段) AS 别名(或者不要也可以) FROM table
如何在mysql查询语句中将查出来的null替换为别的字符?
可以使用casewhen函数将null替换成某个字符(串),例如一下例子: selectcol1, casecol12whennullthen'nothing'elsecol2endascol2fromtblName;