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

标签 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查询

最佳答案

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

向查询添加 ORDER BY 子句:

... ORDER BY RAND()

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

不能保证第一行是“普通”,后面是“高级”。它是伪随机的,因此所有“优质”产品都可能是第一个,或者散布在中间,或者其他什么。

关于mysql - 根据类型或类别获取随机产品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222481/

相关文章:

mysql - 如何从行 "grouped by"中减去 sum() 字段

java - 导出 Jar 应用程序无法与 MySql 连接

php - 通过电子邮件更新 Mysql 表

mysql - 如何混合和改进这个 SQL 语句?

php - 如何在mysql语句中使用 '='符号的通配符

mysql - 在 MySQL 中存储货币值的最佳数据类型

mysql - 根据其他行的计数选择行

mysql - 使用asp.net c#从mysql数据库中选择1个随机数

php - 我如何在多个表中进行搜索?

mysql - 令人抓狂的间歇性Wordpress : Error establishing database connection