Каким образом эти данные ведут себя нечетно? Например. Можете ли вы привести несколько примеров того, как это ведет себя странно и что вы ожидаете увидеть и что вы на самом деле получаете?
ORDER BY
Вы используете то, что обычно используется и в основном работает в соответствии с посылкой, которую он будет заказывать первым в списке, и если он найдет два одинаковых, он будет заказывать второй в списке. Нормальным хорошим примером является имя & фамилия. Если вы закажете по фамилии, вы получите потенциально два «Смита», и в этот момент вы должны заказать по первому, чтобы Алекс появился перед Шериданом.
В вашем примере вы хотите заказать по CreatedOn, а затем ModifiedOn. Он будет заказывать по дате создания, и если бы два были созданы в одно и то же время (или только дата), тогда они будут сортировать их по Модифицированной дате.
Решение? Хорошо, если вы сохраните свои данные в порядке, так что ModifiedOn пуст, тогда вы можете перевернуть сортировку и сделать что-то вроде: ORDER BY ModifiedOn, CreatedOn
. Тем не менее, это оставляет вас одним маринованным: ваши ModifiedOn
даты должны будут начинаться с самого старого, поскольку пустая дата считается старой датой (что-то вроде 1/1/1970). Думаю, перевернуть это правильно - это более чем простой порядок. Для того, чтобы предложить лучший ответ будет поэтому, вероятно, потребуется немного данных, чтобы убедиться, что запрос является правильным :)
Возможный дубликат http://stackoverflow.com/questions/514943/php-mysql-order-by-two-columns, http://stackoverflow.com/questions/2051162/sql-multiple-column-ordering. См. Также http://stackoverflow.com/questions/2099923/how-do-i-order-by-multiple-columns-in-a-select-query – outis
Можете ли вы предоставить несколько примеров данных и то, как вы захотите появиться и как он на самом деле появляется? – Amadiere