MySQL результат показывает сначала некоторые продукты, а затем остальные - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть таблица 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"

Таким образом, в конечном результате у меня будет такой список:

  • Продукт 003
  • Продукт 001
  • Продукт 004
  • Продукт 002

Вопрос в том, как мне составить свой запрос или запросы?Есть мысли по этому поводу?

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

Вы можете использовать это:

ORDER BY `TopProduct`, `ID` DESC
0 голосов
/ 13 февраля 2012

Вы можете сделать что-то вроде этого

SELECT ID, ProductName, Price FROM product ORDER BY TopProduct, ID DESC 

Сначала он будет заказан TopProduct, затем снова на основе идентификатора

0 голосов
/ 13 февраля 2012

Это можно решить следующим образом:

select ProductName from table
order by TopProduct desc

ОДНАКО , это будет работать только при условии, что максимальное значение TopProduct равно 1. Я имею в виду, если вы можете пометить этот столбец с 2 в любой строке, это не будет работать, так как эта строка появится первый. Это тот случай?

В таком случае это запрос на сортировку всех 1 сначала независимо от наличия любого другого числа в столбце:

select ProductName from table
order by if(TopProdct = 1, 1, 0) desc
...