2011-03-24 65 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子句。 如果你搜索史密斯,你将不得不排序其他东西。