0

個別のemails.to値を取得するために、次のMYSQLがありますが、以下の結果を参照してください。

SELECT DISTINCT `emails`.`to`,`emails`.`from` as fromEmail, `emails`.`time` as timestamp
FROM `emails` 
WHERE ((`emails`.`from` = 'sdadr@googlemail.com') 
OR (`emails`.`to` = '887')) 
AND (`emails`.`to` != 0) 
ORDER BY `id` DESC LIMIT 4

-

to    fromEmail             timestamp
370   sdadr@googlemail.com  2012-08-15 16:52:15
1923  sdadr@googlemail.com  2012-08-15 10:54:48
890   sdadr@googlemail.com  2012-08-15 10:43:06
890   sdadr@googlemail.com  2012-08-15 10:43:02

なぜ繰り返し890を返すのですか?

4

3 に答える 3

3

タイムスタンプが異なるため。これDISTINCTは、1つの列だけでなく、行全体を対象としています。

これにより、タイムスタンプが日付のみに切り捨てられ、890は繰り返されません。ニコラ・マルコビノビッチが提案したように。

SELECT DISTINCT `emails`.`to`,`emails`.`from` as fromEmail, DATE(`emails`.`time`) as timestamp
FROM `emails` 
WHERE ((`emails`.`from` = 'sdadr@googlemail.com') 
OR (`emails`.`to` = '887')) 
AND (`emails`.`to` != 0) 
ORDER BY `id` DESC LIMIT 4

秒のみを切り捨てたい場合は、これも目的の結果につながります。次のように実行できます。

SELECT DISTINCT `emails`.`to`,`emails`.`from` as fromEmail, 
DATE_FORMAT(`emails`.`time`, '%Y-%m-%d %H:%i') as timestamp
FROM `emails` 
WHERE ((`emails`.`from` = 'sdadr@googlemail.com') 
OR (`emails`.`to` = '887')) 
AND (`emails`.`to` != 0) 
ORDER BY `id` DESC LIMIT 4

詳細については、の手動入力DATE_FORMAT()

あなたのコメントによると、あなたがユニークな電子メールだけを持ちたいなら、その列を選択するだけで、それ以上はDISTINCT

SELECT DISTINCT `emails`.`to`
FROM `emails` 
WHERE ((`emails`.`from` = 'sdadr@googlemail.com') 
OR (`emails`.`to` = '887')) 
AND (`emails`.`to` != 0) 
ORDER BY `id` DESC LIMIT 4
于 2012-08-21T12:49:54.680 に答える
0

前述のように、現在まで切り捨てます。

SELECT DISTINCT `emails`.`to`,`emails`.`from` as fromEmail, DATE(`emails`.`time`) as timestamp
FROM `emails` 
WHERE ((`emails`.`from` = 'sdadr@googlemail.com') 
OR (`emails`.`to` = '887')) 
AND (`emails`.`to` != 0) 
ORDER BY `id` DESC LIMIT 4
于 2012-08-21T12:51:24.523 に答える
0
SELECT DISTINCT `emails`.`to` 
  FROM `emails`  WHERE ((`emails`.`from` = 'sdadr@googlemail.com')  OR (`emails`.`to` = '887'))  AND (`emails`.`to` != 0)  
  ORDER BY `id` DESC LIMIT 4 

toあなたの質問によると、あなたはこのクエリからそれを得ることができる明確なアドレスを探しています。

于 2012-08-21T12:53:10.097 に答える