Как отменить порядок по умолчанию в Mysql? - PullRequest
6 голосов
/ 27 ноября 2009

В Mysql, когда вы выполняете оператор select SQL, существует порядок по умолчанию, если вы не включаете предложение сортировки, как отменить порядок по умолчанию? Просто добавьте DESC?

Ответы [ 5 ]

5 голосов
/ 27 ноября 2009

Если вы хотите, чтобы данные выходили последовательно упорядоченными, вы должны использовать ORDER BY, а затем столбцы, по которым вы хотите упорядочить запрос. ASC является значением по умолчанию, поэтому вам не нужно его указывать. IE:

ORDER BY your_column

... эквивалентно:

ORDER BY your_column ASC

ASC / DESC по каждому столбцу. Например:

ORDER BY first_column, second_column DESC

... означает, что запрос будет сортировать набор результатов как комбинацию, используя first_column в порядке возрастания, second_column в порядке убывания.

3 голосов
/ 17 марта 2014

Вы можете установить счетчик в полях результатов и отсортировать по нему:

SELECT *, @counter := @counter + 1 AS 'counter' FROM tableName, (SELECT @counter := 0) r ORDER BY counter DESC

Я думаю, что это будет работать, как вы хотите.

3 голосов
/ 27 ноября 2009

Гарантированного порядка не существует, если вы не укажете предложение ORDER BY, поэтому «обратный порядок по умолчанию» не определен.

1 голос
/ 27 ноября 2009

Если вы не можете указать имя столбца в предложении ORDER BY, вы не можете использовать DESC, и вам придется прибегнуть к хитростям, включающим LIMIT, чтобы просмотреть несколько последних записей.

Это было бы неудовлетворительно, я думаю.

1 голос
/ 27 ноября 2009

Я думаю, что вы бы лучше обслужили, указав порядок, который вы на самом деле хотите. Таблицы по своей природе не имеют порядка. Вероятно, он просто отображается в том порядке, в котором были вставлены строки - хотя нет гарантии, что он останется в этом порядке.

Скорее всего, вы, вероятно, просто хотите добавить это:

ORDER BY id DESC

... так как большую часть времени люди используют поле с автоматическим увеличением, называемое «id»

...