我有一个MySQL数据库,其中包含一个包含以下详细信息的表
p_id p_name p_desc p_type
---- ------ ------ -------
1 Pro1 Pro1d premium
2 Pro2 Pro2d normal
3 Pro3 Pro3d classic
4 Pro4 Pro4d normal
5 Pro5 Pro5d deluxe
我希望以包含所有结果的方式列出产品。但 它会以随机顺序显示产品。它会显示一些正常类型 产品,然后是优质产品,再次正常型产品,豪华产品, 然后再次正常型,经典产品。是否有可能用 MySQL查询
答案 0 :(得分:1)
是否可以以伪随机顺序返回行?是。但是对于大型套装来说它会很昂贵。
在查询中添加ORDER BY子句:
... ORDER BY RAND()
对于大型集合来说这将是昂贵的,因为需要为每一行评估RAND()函数,并且RAND()函数返回的值将需要“使用filesort”操作。
不能保证第一行是“正常”,其次是“溢价”。它是伪随机的,因此所有“优质”产品都可以是第一个,或者可以放在中间,或其他什么。