2012-08-01 75 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.. 

为@迈克尔说