Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql结果首先显示一些产品,然后显示其他产品_Php_Mysql_Sql Order By - Fatal编程技术网

Php mysql结果首先显示一些产品,然后显示其他产品

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

我有一个像这样的mysql表(这是一个示例):

其中,TopProduct是用户在管理系统上设置的标志

将标志(TopProduct)设置为1的产品应首先出现在列表上,然后在查询提供所有标记后,它将显示按“ID”订购的其他产品

所以在最后的结果中,我会有这样一个列表:

  • 产品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