一.问题描述 在往数据库写入数据的时候,报错: '字段名' doesn't have a default value 本来这个错误是经常见到的,无非就是字段没有设置默认值造成的.奇怪的是,我这边报错的字段,其类型是text类型.众所周知的,text类型是不能有默认值的.如此一来就有了矛盾,text类型的字段明明不能有默认值,那么为什么还会给我报错,提示缺少默认值呢? 二.问题所在 1.查看字段类型 通过phpmyadmin查看数据表的字段结构,发现text字段在创建的时候,语法为: //创建字段
mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter table + 表名 + add + 要添加的字段 字段类型 + after + 要跟随的字段名 alter table t_adviser_info add hold int COMMENT '0持有,1未持有' after stockname alter table t_adviser_in
当一个字段想模糊查询出多个字段的时候,正常情况下一般会这么作 select * from a where name like 'a%' or name like 'b%' ....or ...; 但是上面的情况只能对应少量的模糊查询值,过多之后再后台开发的时候会出现非常麻烦的sql语句拼接 这时我们可以采用正则表达式进行匹配 select * from a where name regexp'a|b|...'; 如果各位大神有更好的方法,请在下面留言!
当一个字段想模糊查询出多个字段的时候,正常情况下一般会这么作 1 select * from a where name like 'a%' or name like 'b%' ....or ...; 但是上面的情况只能对应少量的模糊查询值,过多之后再后台开发的时候会出现非常麻烦的sql语句拼接 这时我们可以采用正则表达式进行匹配 1 select * from a where name regexp'a|b|...'; --------------------------------------
原文:mysql升级到5.7时间戳报错 往数据库里创建新表的时候报错: [Err] 1067 - Invalid default value for 'updateTime' DROP TABLE IF EXISTS `passwd_reset`;CREATE TABLE `passwd_reset` ( `id` int(11) NOT NULL AUTO_INCREMENT, `staffId` int(11) DEFAULT NULL, `toEmail` varchar(50) D
mySql中,升序为asc,降序为desc.例如: 升序:select * from 表名 order by 表中的字段 asc(mysql中默认是升序排列,可不写) 降序:select * from 表名 order by 表中的字段 desc 若要进行同时一个升序,一个降序,则如下: order by 升序字段 asc,降序字段 desc.