我在MySQL中有一个带有以下记录的SQL表:
+------+----------+
| user | dob |
+------+----------+
| john | 1/10/96 |
| jane | 3/4/97 |
| jill | 1/8/96 |
| jack | 2/9/00 |
| jane | 12/14/07 |
| john | 1/11/98 |
+------+----------+
这是我想要执行的命令:
使用dob<删除所有用户1/1/00但如果存在另一个名为dob> = 1/1/00的用户,请保留用户。
在这个例子中,johns和jill将被删除,janes和jack将保留。
如何将上述命令翻译成sql?
答案 0 :(得分:1)
试试这个:
DELETE FROM Users WHERE dob <= '1/1/00'
答案 1 :(得分:1)
我做了
DELETE FROM table_name a
INNER JOIN (SELECT count(name) as dupesPostMillenia, name
FROM table_name
WHERE dob>'1/1/00'
GROUP BY name ) b on a.name=b.name
WHERE a.dob < '1/1/00' and b.dupesPostMillenia=0
我认为这可能有所帮助。
答案 2 :(得分:0)
DELETE FROM users WHERE dob < '2000-01-01'
请注意:我正在考虑您实际上是在MYSQL中以日期时间格式保存日期。此外,您可以在MYSQL中使用各种格式的日期。请参阅:https://stackoverflow.com/a/14051310/6385845