我有一个问题,实际上是一个关于如何根据第一个 SELECT 的名称和时间戳删除 MySQL 表中所有重复项的最简单方法的问题。
所以,我有这张桌子:
SELECT * FROM search;
+------+--------+------------+--------------------------+-----------------------+
| id | uid | string | cat | timestamp |
+------+--------+------------+--------------------------+-----------------------+
|39523 | 87 |eat to live | a:1:{i:0;s:5:"toate";} | 2013-10-07 17:01:41 |
|39524 | 87 |eat to live | s:6:"author"; | 2013-10-07 17:01:41 |
|39525 | 87 |eat to live | s:6:"people"; | 2013-10-07 17:01:41 |
|39526 | 87 |eat to live | s:7:"company"; | 2013-10-07 17:01:41 |
|39527 | 87 |eat to live | s:6:"author"; | 2013-10-07 17:01:42 |
|39532 | 31 | friends | a:1:{i:0;s:5:"toate";} | 2013-10-07 17:04:17 |
|39533 | 31 | friends | s:6:"people"; | 2013-10-07 17:04:17 |
|39534 | 31 | friends | s:7:"company"; | 2013-10-07 17:04:17 |
|39535 | 31 | friends | s:6:"author"; | 2013-10-07 17:04:17 |
+------+--------+------------+--------------------------+-----------------------+
我只想留下第一个独特的外观。我的解决方案是选择所有行,遍历它们,并为每一行删除与相同字符串匹配的所有行,相同的 uid 和时间戳是相同的时间戳或 +1 秒。
有什么想法/建议吗?我可以在 PHP 中执行此操作,并且想知道是否有更简单的方法可以直接使用 SQL 查询执行此操作。
谢谢