我有一个像这样的mysql表(这是一个例子):
| ID | Product name | Price | TopProduct |
| 01 | Product 001 | 10.00 | 1 |
| 02 | Product 002 | 15.00 | 0 |
| 03 | Product 003 | 20.00 | 1 |
| 04 | Product 004 | 10.00 | 0 |
TopProduct 是用户在管理系统上设置的标记。
将标志( TopProduct )设置为1的产品应首先出现在列表中,然后在查询后将所有标记为标记,然后显示其他产品排序“的 ID ”
所以在最终结果中我会有一个这样的列表:
问题是,我应该如何整理查询或查询? 有什么想法?
答案 0 :(得分:1)
您可以使用:
ORDER BY `TopProduct`, `ID` DESC
答案 1 :(得分:0)
这可以通过这种方式解决:
select ProductName from table
order by TopProduct desc
HOWEVER ,这只会在TopProduct的最大值为1的条件下工作。我的意思是,如果你可以在任何一行中用2标记该列,这将不起作用,因为该行将首先出现。是这样的吗?
如果是,则这是一个查询,首先对所有1进行排序,而不管列中是否存在任何其他数字:
select ProductName from table
order by if(TopProdct = 1, 1, 0) desc
答案 2 :(得分:0)
你可以做这样的事情
SELECT ID, ProductName, Price FROM product ORDER BY TopProduct, ID DESC
首先按TopProduct订购,然后再根据ID
订购