Php mysql结果首先显示一些产品,然后显示其他产品
我有一个像这样的mysql表(这是一个示例): 其中,TopProduct是用户在管理系统上设置的标志 将标志(TopProduct)设置为1的产品应首先出现在列表上,然后在查询提供所有标记后,它将显示按“ID”订购的其他产品 所以在最后的结果中,我会有这样一个列表:Php mysql结果首先显示一些产品,然后显示其他产品,php,mysql,sql-order-by,Php,Mysql,Sql Order By,我有一个像这样的mysql表(这是一个示例): 其中,TopProduct是用户在管理系统上设置的标志 将标志(TopProduct)设置为1的产品应首先出现在列表上,然后在查询提供所有标记后,它将显示按“ID”订购的其他产品 所以在最后的结果中,我会有这样一个列表: 产品003 产品001 产品004 产品002 问题是,我应该如何组合我的一个或多个查询? 对此有何想法?您可以使用以下方法: ORDER BY `TopProduct`, `ID` DESC 这可以通过以下方式解决: se
- 产品003
- 产品001
- 产品004
- 产品002
ORDER BY `TopProduct`, `ID` DESC
这可以通过以下方式解决:
select ProductName from table
order by TopProduct desc
但是这仅在TopProduct的最大值为1的情况下有效。我的意思是,如果你可以在任何一行中用2来标记该列,这将不起作用,因为该行将首先出现。是这样吗
如果是,则该查询首先对所有1进行排序,而不考虑列中是否存在任何其他数字:
select ProductName from table
order by if(TopProdct = 1, 1, 0) desc
你可以这样做
SELECT ID, ProductName, Price FROM product ORDER BY TopProduct, ID DESC
它将首先由TopProduct订购,然后再根据ID进行订购到目前为止,您对文档的阅读向您透露了什么?还是你的MySQL书?这是一个非常基本的东西。实际上是一个新手的错误,我不知道我可以按多个字段排序。谢谢,这个解决方案也很有效,但我发现它更简单,只需按多个字段排序。。。谢谢
SELECT ID, ProductName, Price FROM product ORDER BY TopProduct, ID DESC