Php MySQL获取选择(如果不可用)获取其他
如果子集不够,是否可以从表格中获取子集?获取其他Php MySQL获取选择(如果不可用)获取其他,php,mysql,performance,optimization,Php,Mysql,Performance,Optimization,如果子集不够,是否可以从表格中获取子集?获取其他 product Table --------------------------- Product_ID | Catgory_ID -------------------------- 1 |1 2 |2 3 |1 4 |3 5 |7 6 |8 7 |9 8 |4 9 |2 10
product Table
---------------------------
Product_ID | Catgory_ID
--------------------------
1 |1
2 |2
3 |1
4 |3
5 |7
6 |8
7 |9
8 |4
9 |2
10 |1
11 |7
12 |1
13 |6
14 |5
15 |4
我总是想要4个项目的结果
现在我想从类别1中获得4个产品
我可以从Catgory_ID=1限制4的产品中获得select*
现在我想从Caregory 2中得到4个产品,但是只有2个产品与Caregory 2在一起,所以我想得到的是这2个产品(类别id为2),并得到任意2个随机产品,因此总数为4
我可以在mysql中单独完成这项工作吗
SELECT * FROM product ORDER BY CASE WHEN (Catgory_ID = 2) THEN 0 ELSE 1 END LIMIT 4;
首先,您将所需类别置于表格顶部,然后选择4。您可以这样做,请尝试以下操作:
SELECT * FROM product ORDER BY CASE WHEN (Catgory_ID = 2) THEN 0 ELSE 1 END LIMIT 4;
首先,您将表格排序为所需类别位于顶部,然后选择4。添加随机性:
SELECT *
FROM product
ORDER BY (Catgory_ID != 2) + RAND()
LIMIT 4;
请注意,布尔表达式的计算结果为0(false)或1(true)。添加随机性:
SELECT *
FROM product
ORDER BY (Catgory_ID != 2) + RAND()
LIMIT 4;
请注意,布尔表达式的计算结果为0(false)或1(true)。什么!!!显示一个随机产品,就好像它不在某个类别中一样。你从哪里得到这个想法的?@RiggsFolly请看下面的答案!!什么!!!显示一个随机产品,就好像它不在某个类别中一样。你从哪里得到这个想法的?@RiggsFolly请看下面的答案!!在sql语句
SELECT*中,当(Catgory_ID=2)然后0,否则1结束限制4时,上述操作对我有效,只需稍加调整代码>`以上在sql语句中做了一些小调整,从产品订单中按情况选择*(Catgory_ID=2),然后选择0,否则1结束限制4代码>`