Sqlite порядок по порядку строк - PullRequest
0 голосов
/ 01 июня 2019

Я использую этот запрос

"select * from SomeTable group by SomeColumn"

Это список с порядком акцентирования, но мне нужно в том же порядке, что и в базе данных.

Например, заказ в базе данных:

p

a

s

Но результат:

a

i

p

Образец enter image description here

Результат должен быть одинаковым для CityEN, но со всеми столбцами и порядком, как 1.Paris 2.Amsterdam 3.Istanbul

Ответы [ 4 ]

1 голос
/ 01 июня 2019

В Sqlite каждая строка таблицы имеет уникальный идентификатор строки, который можно использовать для сортировки.

select * from SomeTable group by SomeColumn order by rowid;
1 голос
/ 01 июня 2019

По правилам SQL вы не можете рассчитывать на получение записей в любом конкретном порядке, не указав в запросе SQL предложение ORDER BY.

В практике серверы иногда возвращаютзначения в том порядке, в котором они вставлены, в порядке первого созданного индекса или в порядке первичного ключа - но вы не можете рассчитывать на это поведение, и на самом деле я видел изменение поведениямежду окнами обслуживания базы данных или после обновления версии базы данных.Вы определенно не хотели бы рассчитывать на механизм БД, который будет возвращать вам записи в каком-либо конкретном порядке, если вы напишете оператор SELECT без предложения ORDER BY.

Единственный реальный способ вернуть ваши записи вПорядок, в который вы их вставили, состоит в том, чтобы создать столбец метки времени, а затем отсортировать его во время SELECT.Если вы не хотите беспокоиться о заполнении этого столбца в INSERT, автоматически заполняйте этот столбец отметкой времени (в зависимости от вашего механизма БД).

1 голос
/ 01 июня 2019

В своем утверждении добавьте эту строку для сортировки результатов:

order by min(rowid)
1 голос
/ 01 июня 2019

Ваш запрос не устанавливает порядок с предложением ORDER BY, поэтому не следует делать предположения о порядке строк.Если вы хотите конкретный заказ, добавьте, например, ORDER BY SomeColumn.Смотрите документы обо всех доступных вариантах заказа: https://www.sqlite.org/lang_select.html#orderby

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...