Деление на ноль для сортировки
Привет, у меня есть две таблицы в моей БД: пользователи и рейтинги. Мне нужно отсортировать их по рейтингу:
SELECT *
FROM users
LEFT JOIN ratings ON users.id = ratings.id
ORDER BY ratings.total_value / ratings.total_votes DESC
LIMIT 0 , 30
Иногда значение total_value равно нулю. Должен ли я добавить дополнительное условие, чтобы проверить, равны ли эти значения нулю?
3 ответа
Я думаю COALESCE()
здесь будет работать:
ORDER BY COALESCE(ratings.total_value, 0) / ratings.total_votes DESC
Мой простой тест select 1 / 0
дает нулевое значение, поэтому я даже не знаю, нужно ли вам
Вы могли бы использовать COALESCE(ratings.total_value, 0)
вернуть первое ненулевое значение. Если ratings.total_value
является NULL
тогда вы получите 0
вместо.
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html