請教一個mysql去重取最新記錄
問題描述
數(shù)據(jù)如下 id domain port email type name value ttl route def remark2390 test.cn 80 123@qq.com 1 www 123.123.123.123 0 0 0 2523 test.cn 80 123@qq.com 1 www 123.123.123.123 1800 0 0
一個表中有 2 條相同的數(shù)據(jù),(除了 ttl 和 id 不一樣外),現(xiàn)在要保留最新的一條記錄(如 2523 ),請教如何操作
下面是需要用到的測試語句; 數(shù)據(jù)庫是 mysql 5.7
use test;CREATE TABLE test ( `id` int(11) NOT NULL AUTO_INCREMENT, `domain` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `port` varchar(6) COLLATE utf8_unicode_ci DEFAULT ’80’, `email` varchar(45) COLLATE utf8_unicode_ci NOT NULL, `type` tinyint(4) DEFAULT NULL, `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `value` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `ttl` int(11) DEFAULT ’0’, `route` tinyint(4) DEFAULT ’0’, `def` tinyint(1) DEFAULT ’0’, `remark` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2721 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ciINSERT INTO test.test (`id`, `domain`, `port`, `email`, `type`, `name`, `value`, `ttl`, `route`, `def`, `remark`) VALUES (’2390’, ’www.test.cn’, ’80’, ’123@qq.com’, ’1’, ’www’, ’123.123.123.123’, ’0’, ’0’, ’0’, NULL);INSERT INTO test.test (`id`, `domain`, `port`, `email`, `type`, `name`, `value`, `ttl`, `route`, `def`, `remark`) VALUES (’2523’, ’www.test.cn’, ’80’, ’123@qq.com’, ’1’, ’www’, ’123.123.123.123’, ’1800’, ’0’, ’0’, NULL);
問題解答
回答1:踩我的出來指出錯誤呀,讓我學習學習哪里有問題。delete from testwhere (id,domain, port, email, type, name, value,route, def, remark) not in (select * from (select max(id) id,domain, port, email, type, name, value,route, def, remarkfrom test group by domain, port, email, type, name, value,route, def, remark) tmp)
回答2:select max(id),domain, port, email, type, name, value,route, def, remark from test GROUP BY domain, port, email, type, name, value,route, def, remark;
回答3:給你個生成刪除腳本的sql
select concat('delete from test where id=',min(id),';') into outfile ’/tmp/delete_test.sql’ lines terminated by ’n’ from test group by domain, port, email, type, name, value,route, def, remark;
相關文章:
1. macOS Sierra 10.12 安裝mysql 5.7.1出現(xiàn)錯誤2. mysql - 拖拽重排序后怎么插入數(shù)據(jù)庫?3. android - 安卓做前端,PHP做后臺服務器 有什么需要注意的?4. javascript - 按鈕鏈接到另一個網(wǎng)址 怎么通過百度統(tǒng)計計算按鈕的點擊數(shù)量5. mysql 獲取時間函數(shù)unix_timestamp 問題?6. mysql - 僅僅只是把單引號與反斜杠轉義不用prepare statement能否避免sql注入?7. php - 生產(chǎn)環(huán)境下,給MySQL添加索引,修改表結構操作,如何才能讓線上業(yè)務不受影響?8. mysql主主同步,從庫不同步應該怎么解決?9. mysql在限制條件下篩選某列數(shù)據(jù)相同的值10. 新入手layuiadmin,部署到tp中。想用php自已寫一個后臺管理系統(tǒng)。
