MySQL порядок по нескольким столбцам игнорируя последний порядок по директиве

При использовании следующего запроса:

SELECT id, rater_id, product_id, is_valid  
FROM `ratings` 
WHERE (`ratings`.element_id = 3151) 
ORDER BY id DESC, product_id DESC, is_valid ASC;

я ожидал бы, что результирующий набор будет сначала отсортирован по id, затем по product_id, а затем по is_valid. что на самом деле происходит, так это то, что набор результатов действительно упорядочен, но столбец is_valid в результатах сортируется по DESC, а не по ASC. попытался использовать ASC и DESC, но набор результатов остался прежним.

+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| id               | int(11)      | NO   | PRI | NULL    | auto_increment |
| user_id          | int(11)      | NO   | MUL | NULL    |                |
| product_id       | int(11)      | YES  | MUL | NULL    |                |
| value            | tinyint(4)   | YES  | MUL | NULL    |                |
| rater_id         | int(11)      | YES  |     | NULL    |                |
| comment          | varchar(350) | YES  |     | NULL    |                |
| created_at       | datetime     | YES  |     | NULL    |                |
| updated_at       | datetime     | YES  |     | NULL    |                |
| element_id       | int(11)      | YES  | MUL | NULL    |                |
| is_valid         | tinyint(1)   | YES  | MUL | 0       |                |
+------------------+--------------+------+-----+---------+----------------+

1 ответ

Решение

id поле является [уникальным автоинкрементным] первичным ключом. Это означает, что независимо от значений product_id а также is_valid имеет порядок id сделает два других правила заказа бесполезными.

Я думаю, что вы, вероятно, не понимаете, что ORDER BY Предложение работает как вложенный порядок, а не как независимый порядок значений столбцов.

Другие вопросы по тегам