Записи базы данных не отображаются в ожидаемом порядке - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть следующая структура таблицы в моей базе данных Sybase: myTable {myId1 ID, myId2 ID, myString String}

Первичный ключ - myId1, и у меня есть два индекса index1 {myTable.myId1} ASC и index2 {myTable.myId2} ASC

Myтаблица содержит три записи: (1,8,'first line'), (2,8,'second line') & (3,8,'third line').

Почему, когда я выполняю

select * 
from myTable`

, я получаю

3,8,'third line'
1,8,'first line'
2,8,'second line'

вместо

1,8,'first line'
2,8,'second line'
3,8,'third line'

К вашему сведению: select * from myTable order by myId1 ASC возвращает требуемый вывод.

Обновление: поскольку результат select * from myTable является случайным, то почему я всегда получаю этоточно такой же порядок каждый раз, когда я выполняю запрос?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы должны рассматривать данные в таблицах как набор, который не отсортирован.

0 голосов
/ 25 сентября 2018

ни одна база данных не возвращает значения в любом порядке, за исключением того, что вы явно используете order by для ее упорядочения

like order by column asc or desc

в результате select * from myTable order by myId1 ASC возвращает упорядоченные данные, поскольку вы явно вызывали их в порядке возрастания

и 1-й запрос select * from myTable не возвращает заказ, потому что здесь вы не использовали явный порядок

...