我有一个 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查询
最佳答案
是否可以以伪随机顺序返回行?是的。但对于大套装来说会很昂贵。
向查询添加 ORDER BY 子句:
... ORDER BY RAND()
对于大型集合来说,这将是昂贵的,因为需要对每一行计算 RAND() 函数,并且 RAND() 函数返回的值将需要“使用文件排序”操作。
不能保证第一行是“普通”,后面是“高级”。它是伪随机的,因此所有“优质”产品都可能是第一个,或者散布在中间,或者其他什么。
关于mysql - 根据类型或类别获取随机产品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222481/