用户名:  密码:   
您当前的位置:首页 > SQL数据库 >  MySql > 

mysql中使用过的一些代码

上次修改时间: 2024-09-18 14:35:26      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\SQL数据库相关\mysql相关\      下一页

mysql中使用过的一些代码
 
 
1. mysql数据库cjzsLoginData表中username字段内容相同的只保留updatetime字段日期为最新的,Username可能重复,后又改成了MAC
  即在 MySQL 数据库的 cjzsLoginData 表中,只保留每个 mac 字段内容相同的记录中 updatetime 字段日期最新的记录
  DELETE t1 FROM cjzsLoginData t1 INNER JOIN cjzsLoginData t2 WHERE t1.mac = t2.mac AND t1.logtime < t2.logtime
  相当于:
  DELETE t1 FROM cjzsLoginData t1  //从t1表删除,t1是表cjzsLoginData的别名
  INNER JOIN cjzsLoginData t2   //自我连接(self-join),相当于再把表cjzsLoginData复制一份命别名t2
  WHERE t1.username = t2.username AND t1.logtime < t2.logtime //删除的条件是t1表username=t2表username并且t1表日期小于t2表的
  自我连接,相当连接自我,把自身复制一份并命名为别名,两个表都是自身,从T1表删除还是T2删除,都是删除自身的数据
 
2. 新建一名为cjzsLoginData2的表,并把cjzsLoginData表的中所有内容复制进去,相当于复制cjzsLoginData表一份并命名为cjzsLoginData2
  CREATE TABLE cjzsLoginData2 LIKE cjzsLoginData; //先按照cjzsLoginData表创建cjzsLoginData2表
  INSERT INTO cjzsLoginData2 SELECT * FROM cjzsLoginData; //再把cjzsLoginData所有数据复制到cjzsLoginData2
 
  “show variables like '%version_%'  //查看mysql是多少位,32还是64位
 
4. 错误语句:DELETE * FROM cjzsLoginData  WHERE user = '未知'  不能加*,应改为DELETE FROM cjzsLoginData  WHERE user = '未知'

从数据库cjzsLoginData表中username字段内容相同的只保留updatetime字段日期为最新的
DELETE t1 FROM ct_txthtml t1 INNER JOIN ct_txthtml t2 ON t1.path = t2.path AND t1.title = t2.title AND t1.ltime < t2.ltime;
删除前先将delete换成select查询一下看结果是否正确
SELECT t1.*
FROM ct_txthtml t1
INNER JOIN ct_txthtml t2
ON t1.path = t2.path
AND t1.title = t2.title
AND t1.ltime < t2.ltime;