Ответов: 18 Просмотров: 634
|
EuGen пишет:Что трактовать?
Вы задаете порядок в соответствии с выражением, равным -1 * (!moderate) * id
Оно вычисляется для каждой строки. Здесь следует понимать, что !0 равно 1 и !1 равно 0. А еще стоит понимать что при умножении на 0 любое число есть 0. Кроме этого, используется особенность MySQL - сортировать по внутреннему номеру строки, если выражение, задающееся в ORDER BY, возвращает одинаковые значения для строк. Этот самый внутренний номер строки совпадает с автоинкрементным первичным ключом (если последний задан), потому и получается, что для всех строк, у которых это выражение равно нулю, сортировка получается по возрастанию. Ну а для тех строк, где !moderate равно 1 (то есть moderate равно 0), применяется обычная сортировка, при этом не забывайте, что отрицательное число тем меньше, чем больше оно по модулю.
что такое ( !moderate) |