根据类型或类别获取随机产品列表

时间:2016-05-14 04:21:51

标签: mysql

我有一个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查询

1 个答案:

答案 0 :(得分:1)

是否可以以伪随机顺序返回行?是。但是对于大型套装来说它会很昂贵。

在查询中添加ORDER BY子句:

... ORDER BY RAND()

对于大型集合来说这将是昂贵的,因为需要为每一行评估RAND()函数,并且RAND()函数返回的值将需要“使用filesort”操作。

不能保证第一行是“正常”,其次是“溢价”。它是伪随机的,因此所有“优质”产品都可以是第一个,或者可以放在中间,或其他什么。