开发者社区 问答 正文

如何隐藏所有产品,直到选择了类别

当前,当用户打开此网页时,数据库中的所有产品都列在该页面上。我如何才能做到,而不是全部列出,而是只列出12种随机产品?DISTINCT由于某些产品在多个类别中两次出现,因此我必须假定这12 个。任何帮助表示赞赏!

当前功能:当用户登陆页面时,网站加载并显示所有产品。

所需功能:当用户登陆页面时,网站加载并显示12种随机产品。

我了解在当前代码中,我之所以会显示所有产品是因为SELECT * FROM product WHERE product_status = '1'查询。我只是不知道该用什么替换以获得我想要的功能。

展开
收起
保持可爱mmm 2019-11-15 13:46:48 416 分享 版权
阿里云 AI 助理回答

要实现您所描述的功能,即在用户登录页面时仅显示12种随机产品,您可以使用SQL的RAND()函数(或特定数据库系统中的等效函数)来随机排序产品,并结合LIMIT子句来限制返回的结果数量。不过,请注意,不同的数据库管理系统(如MySQL、PostgreSQL、SQL Server等)可能有不同的函数来实现随机排序。

以下是在几种常见数据库系统中如何实现这一功能的示例:

MySQL 和 SQLite 示例

SELECT * 
FROM product 
WHERE product_status = '1' 
ORDER BY RAND() 
LIMIT 12;

PostgreSQL 示例

SELECT * 
FROM product 
WHERE product_status = '1' 
ORDER BY RANDOM() 
LIMIT 12;

SQL Server 示例

由于SQL Server没有直接的RAND()用于ORDER BY的简单用法,可以采用TOP和NEWID()结合的方式来实现:

SELECT TOP 12 * 
FROM (
    SELECT *, NEWID() AS RandomOrder
    FROM product 
    WHERE product_status = '1'
) AS ProductsWithRandomOrder
ORDER BY RandomOrder;

这些查询首先会筛选出状态为'1'的产品,然后按照随机顺序对它们进行排序,最后只取前12条记录。这样,每次页面加载时,展示给用户的都是不同的一组随机产品。

请根据您实际使用的数据库系统选择合适的SQL语句,并将其应用到您的后端代码中,以动态生成这12种随机产品的列表。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: