Деление на ноль для сортировки

Привет, у меня есть две таблицы в моей БД: пользователи и рейтинги. Мне нужно отсортировать их по рейтингу:

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

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