显示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