mysql 替换字段,替换表名,快速删除数据 以及相关技巧
1.mysql_交换指定两条记录的某个字段的值
方法一:
mysql语句如下:
update question set sort=(case when id=7 then (select a.sort from (select tmp.* from question tmp) a
where a.id=8) when id=8 then (select a.sort from (select tmp.* from question tmp) a where a.id=7) end)
where id=7 or id=8;
方法二:
update question as q1 join question as q2 on (q1.id=7 and q2.id = 8)
or(q1.id = 8 and q2.id=7)
set q1.sort = q2.sort,q2.sort=q1.sort;
2.重命名rename table {$v} to {$v}_old,{$v}_new to {$v}
3.删除大数据表数据:
(1).建一张临时表。将不需要删除的数据插入进来。
INSERT INTO t_copy SELECT * FROM t WHERE ... ;
(2).重命名表。(处理的表 t 改为t_old 临时表改为 t)
RENAME TABLE t TO t_old, t_copy TO t;
(3).删除表。
DROP TABLE t_old;
4.查询当前数据库的数据表
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where table_schema='{$this->db}'
5.导入数据的时候,
可以先关闭索引。ALTER TABLE `".$table."` DISABLE KEYS
等执行完毕后再开启索引。ALTER TABLE ".$v['TABLE_NAME']." ENABLE KEYS
6.获取数据表执行语句
"SHOW CREATE TABLE ".$this->db.'.'.$table