例子: // 删除以0开头的字段 DELETE FROM `week_energy_copy` WHERE openid like '0%'; // 删除以数字开头的字段 DELETE FROM `week_energy_copy` WHERE openid NOT REGEXP '^[0-9]'; // 删除以大写字母开头的字段 DELETE FROM `week_energy_copy` WHERE openid REGEXP '^[A-Z]';
在线批量修改mysql中表结构 1.获取要修改的表的表名称登录mysql库,查询出所有表 show tables; 将需要修改表结构的表名称存放到b.txt文件中2.执行修改修改表引擎为InnoDB for i in `cat b.txt`;do /usr/local/percona-toolkit/bin/pt-online-schema-change --user=root --password=123456 --host=localhost --charset=utf8 --alter="
在mysql中,一个数字加上null,结果为null. 这个问题是我用update语句时遇见的,就像下边的例子 update tableName set number = number + x 这里的"x",可以为你查询到的一个值,当这个值为null时,不管你的number是多少,它的值都会变为null 解决这个问题我们可以用:ifnull(param,value)这个函数 它的意思是,当param这个值为null时,会给它设置默认值为value 所以这里的update语句我们可以写为
安装完Mysql也进行了第一次初始化密码以及修改密码规则(请参考文章),但是我想后续再改密码,出现了下面几个问题: #SQL语句错误问题 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('12345678') WHERE user =
之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary log files in sequence by adding a numeric suffix to the base name 就是说会在你定义的二进制文件名后再加多一个数字为结尾,那么这个数最大为多少呢(此次实验版本为5.7.12)? 我们先让其到999999,再flush logs看一下,
对于开发来说重要的是按照规范进行开发. 昨天自己在进行开发测试的时候,编写mysql 的一个存储过程 ,代码是比较简单的 就是根据名称查询对应的数据并返回 DELIMITER // CREATE PROCEDURE proc1(name int) BEGIN select * from table_name where name=name; END // 大家可能注意到了一个变量名称 name 因为我的数据库中的一个字段的名称也是name 按照传统编程语言传递参数的特点查询应该是没有问题的,但是
MySQL毫秒值和日期转换,MYSQL内置函数FROM_UNIXTIME: select FROM_UNIXTIME(t.createDate/1000,'%Y-%m-%d %h:%i:%s') as cd from task t where taskStatus='1'; SELECT FROM_UNIXTIME(time/1000,'%Y-%m-%d %h:%i:%s') FROM `logs` where time='1541260863000'; //t.createDate里是lon