显示db物理存储路径

show global variables like "%datadir%";

mysql给定一个随机数

update cnmat_video set hits=FLOOR(1 + (RAND() * 50)) 给定一个1-50中间的随机数

mysql null 取消必填 default value(错误提示一般是Field "details" doesn't have a default value)

only_full_group_by问题 提示[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

查询当前模式:SELECT @@GLOBAL.sql_mode;
修改方法
1.配置my.ini,去掉:STRICT_TRANS_TABLES和ONLY_FULL_GROUP_BY,重新设置值
2.运行sql  SET @@GLOBAL.sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

MySQL数据表字段内容的批量修改、复制命令

复制字段里的数据命令:
SQL代码
UPDATE table SET 被替换的字段名=被复制的字段名   
演示如下
SQL代码
UPDATE dede_archives SET senddate=pubdate  
如何手动将同一数据表内不同字段之间的内容批量转换,可以参考下面的命令:
SQL代码
UPDATE table set 字段名=REPLACE(字段名,'原字符串','替换的字符串') where 已知的字段名 LIKE '%原字符串%'  
应用到本文实例
SQL代码
UPDATE pw_members set yz=REPLACE(yz,'1','2') where yz LIKE '%1%'  

批量的在一个字段前面加指定字符

update  tablename  set  name=concat("B",name);

Unknown storage engine 'InnoDB' 错误修复

原因:没有开启MySQL InnoDB存储引擎。
1.关闭MySQL数据库
2.修改my.ini文件,把skip-innodb这行注释掉
3.打开MySQL数据库

随机时间

update test set create_time=concat('2013-10-01 ', floor(10+rand()*10),':',floor(10+rand()*49),':',floor(10+rand()*49))  where create_time='0000-00-00 00:00:00';

查询表里包含手机号的数据

SELECT * FROM `sm_member` WHERE `nickname` REGEXP "[1][35678][0-9]{9}$" ORDER BY `id` DESC;

根据一个表数据更新另外一个表

update table_1 t1,table_2 t2 set t1.column = t2.column where t1.id = t2.pid;

简单恢复数据

mysqlbinlog -d 数据库名称 --skip-gtids=true --start-datetime=“2021-11-19 15:10:00” --stop-datetime=“2021-11-19 15:18:00” /usr/local/mysql/var/mysql-bin.000071 > /home/001.sql

 

end

 posted on 2017-11-01 16:54  whlives  阅读(234)  评论(0编辑  收藏  举报