簡體   English   中英

在MySQL中避免同一記錄的多個輸出

[英]Avoid multiple outputs of same record in MySQL

選擇記錄時,我有一個可以在多種條件下使用的查詢。

select
    uid, uid2, up, 
    datediff(CURRENT_TIMESTAMP, tim) \"dt\", 
    id, behind, sid, spid 
from Z_uup, Z_snoop, Z_wshop 
where 
    (Z_wshop.sid='5555' or Z_snoop.id='5555' ) and 
    (
        Z_uup.uid=Z_snoop.id or 
        Z_uup.uid2=Z_snoop.id or 
        Z_uup.uid=Z_snoop.behind or 
        Z_uup.uid2=Z_snoop.behind or 
        Z_uup.pid=Z_wshop.spid
    )
order by Z_uup.tim desc;

Z_uup只有一個條目,但看來我得到了15個重復的輸出。 為什么會這樣,我該如何解決。

您嘗試使用DISTINCT嗎?

SELECT DISTINCT field1, field2, ... FROM table1...

這樣,重復記錄將不會顯示。

如果速度變慢,請嘗試使用Z_uup中的字段進行分組。

嘗試使用GROUP BY:


select  uid,uid2,up,datediff(CURRENT_TIMESTAMP,tim) \"dt\",id,behind,sid,
spid from Z_uup,Z_snoop,Z_wshop where (Z_wshop.sid='5555' or Z_snoop.id='5555' ) 
and (Z_uup.uid=Z_snoop.id or Z_uup.uid2=Z_snoop.id or 
Z_uup.uid=Z_snoop.behind or Z_uup.uid2=Z_snoop.behind or Z_uup.pid=Z_wshop.spid)
group by uid order by Z_uup.tim
 desc;

希望能幫助到你

在查詢中寫入GROUP BY ,您得到的記錄相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM