我一直在检查stackoverflow并发现了一些类似的问题,但我认为不是100%确认。
我正在尝试从MySQL db * *或firstname,lastname ... + DISTINCT电子邮件中选择*记录。
我在数据库中有一些重复的用户,但我只想选择一次。除了不同的电子邮件,我还需要所有其他领域。
我看过类似SELECT DISTINCT EMAIL,FIRSTNAME,LASTNAME来自用户的内容。 这准确吗?如果我只发送不同的电子邮件,我会收到不同的行数,不同的是DISTINCT EMAIL,FIRSTNAME,当DISTINCT EMAIL,FIRSTNAME,LASTNAME等时有所不同。
我认为对于DISTINCT(EMAIL)和DISTINCT EMAIL,FIRSTNAME,LASTNAME,......的结果应该是相同的......如果这是正确的查询。
你有没有其他方法在MySQL中选择那些行?
答案 0 :(得分:1)
是的,这是正确的;您应该使用DISTINCT
运算符来获取唯一数据,但唯一性取决于组合。
DISTINCT EMAIL
将获得所有唯一的EMAIL,但
DISTINCT FIRSTNAME, LASTNAME
会为您提供FIRSTNAME and LASTNAME
的独特组合。与Adam Miller
和Miller Adam
类似,可能不重复。
同样,DISTINCT EMAIL, FIRSTNAME, LASTNAME
会为您提供EMAIL, FIRSTNAME, LASTNAME
的组合。因此,您正在观察不同的结果计数。
答案 1 :(得分:0)
GROUP BY可以解决您的问题。这是示例代码。
SELECT * FROM USERS GROUP BY `EMAIL`
这将对电子邮件的所有重复条目进行分组。
希望它对你有所帮助。