2009-03-21 4 views
7

У меня есть база данных в SQLlite, и я бы хотел отсортировать таблицу в алфавитном порядке. Как мне это сделать? Есть ли способ сортировки записей с использованием только SQLite или мне нужно сначала прочитать таблицу в массиве, отсортировать ее и впоследствии записать в базу данных?SQLite - сортировка таблицы

Это мой запрос: «SELECT entry FROM table WHERE id =?» Мне нужно получить данные из таблицы, используя этот оператор, чтобы получить только одну запись за раз.

Заранее спасибо, Ilya.

ответ

13
'Select name from table order by name asc' 

«по возрастанию» поднимается, даст вам текстовое поле в алфавитном порядке, наоборот «DESC» даст его вам в обратном алфавитном порядке.

Редактировать: как правило, вы должны позволить базе данных выполнять сортировку. Следующий пост связан, и, возможно, почти тот же. Вы могли бы найти это полезным:

PHP/SQL: ORDER BY or sort($array)?

+0

Спасибо, это помогает. Но как я могу назначить новые идентификаторы каждой строке после сортировки? Чтобы изменения отображались в моей таблице. Если я хочу получить запись с ID = 0, это даст мне слово, начинающееся с A и так далее. –

+0

@Ilya: Идентификационные ключи не являются номерами строк. Они должны быть уникальными, но они ни в каком порядке (и не смежны). Сортировка, основанная на столбце 'name', и используйте значение ID только как способ ссылки на строку. –

+0

Вы хотите переупорядочить данные в алфавитном порядке так, чтобы первой (алфавитной) записи присваивался самый низкий номер идентификатора? Вы можете вставить в новую таблицу, а затем удалить старый, например. SELECT name INTO table2 FROM table order by name asc – karim79

0

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

2

Следует также подчеркнуть, что порядок данных в любой таблице базы данных SQL или извлекаемый из них с использованием запроса, который не включает предложение order by, не определен.

На практике прямое считывание таблицы без заказа будет извлекать данные в некотором фиксированном порядке, и это часто порядок вставки. Однако, чтобы положиться на это всегда ошибка, хотя одна из них встречается часто.

Смежные вопросы