简单 MySQL 重复删除
Simple MySQL Duplicate Removal
我正试图从我的数据库中获取行。但是,由于某种原因,即使在 IDPosts 部分有 DISTINCT 命令,一些行 return 仍然是重复的。问题是用于检查 post 过期日期的 AND/OR 语句。任何想法将不胜感激,以将其减少到零重复。如果您需要更多信息,请告诉我。
SELECT
DISTINCT IDPosts,
profile_picture,
body,
post_date,
expires,
filename,
username
FROM Posts, Users
WHERE Posts.IDUser = Users.IDUser AND expires IS NULL OR expires >= NOW()
ORDER BY `Posts`.`post_date` DESC
我不知道这是否与您的问题有关,但您应该在 where
子句中的 expires
条件周围加上括号。逻辑可能不符合您的意图。
SELECT DISTINCT IDPosts, profile_picture, body, post_date, expires,
filename, username
FROM Posts JOIN
Users
ON Posts.IDUser = Users.IDUser
WHERE
(expires IS NULL OR expires >= NOW() )
ORDER BY `Posts`.`post_date` DESC;
现在我还修复了连接语法以使用正确的显式连接。
我正试图从我的数据库中获取行。但是,由于某种原因,即使在 IDPosts 部分有 DISTINCT 命令,一些行 return 仍然是重复的。问题是用于检查 post 过期日期的 AND/OR 语句。任何想法将不胜感激,以将其减少到零重复。如果您需要更多信息,请告诉我。
SELECT
DISTINCT IDPosts,
profile_picture,
body,
post_date,
expires,
filename,
username
FROM Posts, Users
WHERE Posts.IDUser = Users.IDUser AND expires IS NULL OR expires >= NOW()
ORDER BY `Posts`.`post_date` DESC
我不知道这是否与您的问题有关,但您应该在 where
子句中的 expires
条件周围加上括号。逻辑可能不符合您的意图。
SELECT DISTINCT IDPosts, profile_picture, body, post_date, expires,
filename, username
FROM Posts JOIN
Users
ON Posts.IDUser = Users.IDUser
WHERE
(expires IS NULL OR expires >= NOW() )
ORDER BY `Posts`.`post_date` DESC;
现在我还修复了连接语法以使用正确的显式连接。