2011-05-31 108 views
1

我的表有很多行有相同的列。我会打电话给“喜欢”的列。如果我使用“按喜欢排序”,那么具有相同“喜欢”的行将在它们被添加到数据库中时排序。 我希望所有具有相同“喜欢”的行随机排序。我尝试过“ORDER BY likes,rand()”,但是一切都是随机排序的。 我该怎么做?SQL:按列和rand()排序?

+0

它将有助于显示表定义和查询 – Bohemian 2011-05-31 03:47:51

+0

可能的重复[如何请求SQL中的随机行?](http ://sackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – theMayer 2015-01-12 05:12:50

回答

5

我建议你再检查一次。将order by something, rand()条款添加到我的其中一个查询中,与您预期的完全一样,唯一的随机发生在something组内。

请注意,在order by子句中使用rand()时,如果表格变大,将无法很好地扩展。

0

我不是很肯定,因为我不知道你的表的结构,我不知道该查询......但尝试添加GROUP BY likes到您的查询

+3

虽然他希望根据* likes分组结果,但是GROUP BY在这里不正确;将所有相似的物品放入单个行中以显示th聚合函数的结果。 – 2011-05-31 04:13:53

0

这可能是因为你是向后做(例如“ ORDER BY RAND(),某些东西“而不是”ORDER BY something,RAND())