2012-08-01 72 views
0

避免選擇複製的MySQL行

SELECT `playerid` FROM `lb-world` WHERE replaced=50 AND type=0 >= 0.01 

我選擇行,但在我的表我有

playerid | replaced | type | date 
12  | 50  | 0 | 2010 
12  | 50  | 0 | 2011 
12  | 50  | 0 | 2012 

如何選擇它只是一次?

+1

'SELECT DISTINCT playerid ....' – 2012-08-01 12:54:30

回答

0

如果你只是想playerid,您可以使用DISTINCT

SELECT DISTINCT `playerid` FROM `lb-world` WHERE replaced=50 AND type=0 >= 0.01 
1

試試這個:

SELECT `playerid` FROM `lb-world` 
WHERE replaced=50 AND type=0 
GROUP BY playerid, replaced, type 

這應該是通用的。
無論如何,如果你確信你只是想playerid,使用此

SELECT DISTINCT playerid FROM lb-world 
WHERE replaced=50 AND type=0 
+0

爲什麼GROUP BY?在選擇列表中只有'playerid' – 2012-08-01 12:55:53

+0

@Michael:是的,你說得對...但是如果他想添加一些字段,它仍然可以工作......無論如何,我會改變我的回答 – Marco 2012-08-01 12:56:47

+0

我認爲使用GROUP BY'也是完全有效的。正如MySQL文檔中所述,就優化而言,這兩個函數都非常接近。 http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html – Tchoupi 2012-08-01 13:00:14

0
SELECT DISTINCT playerid.. 

爲@邁克爾說