2011-03-24 61 views
37

MySQL中有任何方法可以獲取表的前10個不同行。在mysql中選擇前10個不同的行

即喜歡的東西...

SELECT TOP 10 distinct * 
FROM people 
WHERE names='SMITH' 
ORDER BY names asc 

但是這種方法並不實際工作,因爲它給出了錯誤:「語法錯誤缺少操作員在查詢表達式不同。*」

回答

80
SELECT DISTINCT * 
FROM people 
WHERE names = 'Smith' 
ORDER BY 
     names 
LIMIT 10 
+0

+1。你好Quassnoi。我想感謝您的博客的高質量。我是你的粉絲。 :) – 2011-03-24 16:48:31

+0

@nick:謝謝! – Quassnoi 2011-03-24 16:49:23

+0

就是這樣。謝謝。 – Urbycoz 2011-03-25 08:28:05

-1

試試這個SELECT DISTINCT 10 * ...

+2

TOP不支持MySQL http://dev.mysql.com/doc/refman/5.0/en/select.html – HadleyHope 2011-03-24 16:49:22

+0

他在使用MS SQL我以爲?問題是訂購 – 2011-03-24 17:05:33

+0

這就是我所說的... SELECT DISTINCT TOP 10 * [其餘的sql] – 2011-03-25 15:10:54

4
SELECT * 
FROM people 
WHERE names ='SMITH' 
ORDER BY names asc 
limit 10 

如果您需要添加group by子句。 如果你搜索史密斯,你將不得不排序其他東西。