База данных SQL не будет автоматически сортироваться при обновлении? - PullRequest
0 голосов
/ 17 октября 2011

Всякий раз, когда я вручную вставляю данные в базу данных sql, они автоматически не прибегают к самому себе. Это небольшое неудобство, но оно все еще там.

Кроме того, будущий выпуск быстро приближается. Это сортировка по номерам, но только по первой цифре. В начале каждой записи есть число, по которому я хочу отсортировать. Я быстро приближаюсь к отметке в сто цифр, которая будет отсортирована по десяткам, под двадцатые, основанные на первой цифре.

Ответы [ 6 ]

2 голосов
/ 20 ноября 2011

Если вы используете phpMyAdmin и хотите, чтобы вещи сортировались при каждом просмотре таблицы, просто сделайте следующее:

  1. Выберите таблицу
  2. Нажмите Операции в верхнем меню
  3. В левом верхнем углу написано "Изменить порядок таблицы по"
  4. Выберите способ сортировки и нажмите Go

Теперь каждый раз, когда вы возвращаетесь к этому столу, он будет отсортирован так, как вы его выбрали.

2 голосов
/ 17 октября 2011

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

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

0 голосов
/ 17 октября 2011

Вы можете использовать

  **ORDER BY** yourcolumn DESC // Descending 

или

   *ORDER BY** yourcolumn ASC // Ascending
0 голосов
/ 17 октября 2011

Нет такой вещи, как автоматическая сортировка. Вы должны сортировать это самостоятельно. Ваша проблема с сортировкой чисел, вот мое решение:

 SELECT tbl AS(
 select CAST(SUBSTRING(<field>',1,instr(<field>',' ') as INT),<field>
 //I would then use a UNION ALL statement, something like this

 SELECT CAST(SUBSTRING(<field>',1,instr(<field>',' ') as INT) as 'SortingField',<field>,A.*
 FROM <table> A
 WHERE <field> LIKE <regular expression to get fields beginning with numbers>
 UNION ALL
 SELECT 999999 as 'SortingField',<field>,A.*
 FROM <table> A
 WHERE <field> NOT LIKE <regular expression to get fields beginning with numbers>)
 ORDER BY tbl.SortingField

В моем ноутбуке нет mySQL, но я надеюсь, что это поможет. Это мне очень помогло.

0 голосов
/ 17 октября 2011

Вы говорите, что это не сортировка (как говорили другие, нет родного поведения сортировки), но затем вы продолжаете описывать, как это это сортировка, так что часть вопроса немногосбивает с толку.

Правильная сортировка, которую вы описываете.У вас есть числа в текстовом поле, поэтому они сортируются не по номерам, а по лексике.Если вам нужна числовая сортировка, вам нужно поместить эту информацию в поле с числовым типом данных и использовать ее в предложении ORDER BY.

0 голосов
/ 17 октября 2011

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

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