

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;