MySQL 常用操作
常用mysql命令记录,免得找啊找还是找不到
NO1: 批量替换字段内的部分值
UPDATE table1 SET aaa=REPLACE(aaa, 'mmm','nnn');
说明:将表table1 内的字段aaa包含的'mmm'替换为'nnn';
NO2:去除某个字段重复的数据
DELETE FROM table1 WHERE id NOT IN (SELECT id FROM (SELECT MIN(id) AS id FROM table1 GROUP BY uip) AS b );
说明:额,删除表table1内主键id 字段为uip内重复的数据;
NO3:新建存储过程,定时在零点清空副表所有数据,执行命令如下:
a: USE mysql (操作的数据库)
DELIMITER && (以&&为结束符)
CREATE PROCEDURE del() (创建函数)
BEGIN
DELETE FROM table1;(数据操作 清空表)
END &&
DELIMITER ; (还原结束符)
b: CREATE EVENT IF NOT EXISTS event_del
ON SCHEDULE EVERY 5 MINUTE (每五分执行一次,此处可自行设置)
ON COMPLETION PRESERVE
DO CALL del();
c:开启计时器(此处可在数据库配置文件my.cnf中添加event_scheduler=ON。否则mysql重启事件又会回到原来的状态了)
临时开启执行命令为:
SET GLOBAL event_scheduler=ON;
NO4:查询时间戳
当日零点:UNIX_TIMESTAMP(CURDATE())
昨日零点:UNIX_TIMESTAMP(CURDATE()) - 86400
NO5:删除表内某一字段重复数据(删除表名为tab_name内字段为xxx的重复数据)
DELETE FROM tab_name
WHERE id NOT IN (
SELECT temp.min_id FROM (
SELECT MIN(id) min_id FROM tab_name
GROUP BY xxx
)AS temp
);
SELECT * FROM tab_name;
NO6:清空数据库内表中所有数据,以数据库'testtab'为例:
select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where table_schema in ('testtab');
执行后将生成如下形式语句:truncate table testtab.xxx;将所有语句拷贝到命令输入处执行即可
NO7:删除数据库内所有表,以数据库'testtab'为例:
drop database if exits testtab;
create database testtab;
NO8:设置表ID自动起始值
ALTER TABLE table_name AUTO_INCREMENT=1