Вчера я задал вопрос о ранжировании студентов по их баллам.Почему нулевые значения не одинаковы в mysql?
[Rank users in mysql by their points ]
Я на самом деле решить мою проблему с помощью я полученного от другого вопроса (спасибо всем, кто помог мне).
Между тем я что-то обнаружил случайно. Если я попытаюсь ранжировать своих учеников по их точкам, и если столбец точек был пуст (NULL), мой запрос не дал ошибку, он также отсортировал ранжировки как 1-2-3-4, но все значения были NULL
это вопрос, который я пробовал
select er.*,
(@rank := if(@points = points,
@rank,
if(@points := points,
@rank + 1,
@rank + 1
)
)
) as ranking
from examresults er cross join
(select @rank := 0, @points := -1) params
order by points desc;
и это результат.
Так интересно Арент NULL значения одинаковы? isnt этот запрос должен был дать rank 1 для каждого пользователя в моей базе? почему он равномерно поменяет значения null?
теперь все имеет смысл благодаря объяснению! –
невозможно спорить с этим ответом! Я думаю, вам нужно отредактировать сообщение в Википедии. – davejal
Ну, для тех пациентов, которые достаточно читают, на странице Википедии также говорится (в третьем абзаце): * «SQL null - это состояние (неизвестно), а не значение». *. – axiac