有一个复杂的mysqli查询,它返回一个产品数组。我需要以特定的方式对结果进行排序:必须按价格(升序或降序)对产品进行排序,然后所有数量为0的产品都必须放在结果数组的末尾。所以返回的数组是:
    
    
    product_id名称名称价格数量
    
    
    0001产品1产品100 3
    
    
    0005产品2 105 105 2
    
    
    0003产品3 110 3 10
    
    
    0002产品4 115 115 4
    
    
    0008产品5 120 120 2
    
    
    0004产品6 105 105 0
    
    
    0005产品2 135 1 0
    
    

进行按数量订购DESC,价格无济于事,因为所有产品在按价格订购之前都按数量订购。否则,按价格订购,数量DESC将数量= 0的所有产品放在表的中间。需要一些帮助。

最佳答案

用这个:

ORDER BY quantity = 0, price


对于所有零数量的项目,quantity = 0将为1,对于其他所有项目,其将为0

关于mysql - 在MySQL中按两列自定义顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25459222/

10-10 19:15