Задать вопрос
@Islam222

Почему в данных таблицы все не по порядку?

6491542964753199672814.png

И вообще целеообразно ли создавать словарь таким оброзом? Добавляя каждое слово в БД? Если нет, то подскажите пожалуйста
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@alexalexes
О порядке добавления записей не нужно заботиться.
У СУБД нет задачи хранить записи в строгом порядке, ваша задача понять, удовлетворит ли вас результат сортировки, если при выборке задать сортировку по darg-w:
select *
  from verbs
order by darg-w

Если хотите получать список в порядке добавления, то логично сортировать по id:
select *
  from verbs
order by id

Если хотите особую сортировку, которая не подчиняется ни id, ни естественному весу строк, то можете ввести новую колонку и следить за позиционированием строк при выборки сами, или по каким-то другим правилам вычислять позицию:
select *
  from verbs
order by position -- дополнительное поле, в которое будете сами или программно вбивать порядок сортировки

Или запрос может выдергивать сам определенные строки, давая им высший приоритет (можно написать любое правило, что требует бизнес логика, или что в голову сбредет):
select *
  from verbs
order by case when id = 100 then 0 else 1 end -- даем записи id=100 наивысший приоритет, в любом состоянии списка она будет на 1 месте!
        , id -- остальные записи отсортируются в порядке добавления

PS: Важно, чтобы поля, которые применяются в сортировке, были проиндексированы (в схеме СУБД были созданы индексы по данным полям и они своевременно пересчитаны).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SQL не гарантирует какого-либо определённого порядка строк в выборке за исключением явно заданного через SORT BY.
Ответ написан
Комментировать
trapwalker
@trapwalker
Программист, энтузиаст
БД не гарантирует и не обеспечивает никакого конкретного порядка хранения данных. Извлекаются данные из БД также без определенного порядка, если вы не указываете сортировку в SQL-запросе явно.
Также не очень хорошая идея привязывать порядок слов в словаре к ключу. Так вы не сможете добавлять словарь между словами, ведь ожидается алфавитная сортировка. Просто не считайте ключевое поле упорядоченным и как-то влияющим на порядок, а слова сортируйте по алфавиту с помощью SQL-запросов. Ну и да, нужно сделать соответствующий индекс на этой таблице.
А вообще такие основы можно прочесть в любой книжке про базы данных.
Мой вам совет - начните с книги.
Ответ написан
Комментировать
@Islam222 Автор вопроса
А все. Надо было выбрать сортировать по ключу PRIMARY (ASC)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы