我有一个在线商店,成员(member)可以在其中订阅 3 个套餐(1、2 和 3)中的任何一个。下面是产品数据库表的示例。
id package product status
1 3 Biro 1
2 1 Paper 1
3 3 Pin 0
4 2 Eraser 1
5 2 Blade 1
6 3 Bag 1
7 2 Pen 0
8 1 Sharpener 1
9 1 Shoe 1
10 2 Chair 1
我先展示了 3 个产品的包装,然后是 2 个产品的包装,最后是 1 个产品的包装,这样;
$get_products = mysql_query("SELECT * FROM products WHERE status='1' ORDER BY package DESC");
但我真正想做的是先随机显示所有套餐 3 产品,然后随机显示套餐 2 产品,最后随机显示套餐 1 产品。因此,没有特定的项目将始终位于顶部,而有些项目将始终位于底部。
语法怎么写?
最佳答案
通过执行以下操作,可以仅使用 SQL 对产品列进行随机排序:
$get_products = mysql_query("SELECT * FROM products WHERE status='1' ORDER BY package DESC, RAND()");
但是,请记住在 MySQL 中通过“RAND()”排序可能会很慢,尤其是当您的列未被索引时。
引用以下链接:
MySQL: Alternatives to ORDER BY RAND()
关于php - 如何以特定顺序随机显示类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38755019/