упорядочивание и группировка MySQL - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть таблица базы данных, подобная этой:

ID     TIME       SUB    INFO
178    9:00AM              A
179    9:10AM              E
180    9:15AM     179      B
181    9:16AM     179      another B
182    9:20AM     179      C
183    9:25AM     179      D
184    9:30AM              F
185    9:35AM     184      before F

Мне нужен этот список для правильного заказа INFO (A, B, другой B, C, D, E, перед F, F).SUB используется, когда пользователь вводит новую информацию для исправления заказа.например, ID180 пользователь вставил «B» для позиционирования перед ID179.Аналогично, пользователь ID181 вставил «C» для позиционирования и до 179.

Какой самый эффективный запрос mysql для этого (очевидно, учитывает неалфавитную информацию: P)?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

ВЫБЕРИТЕ ID, ВРЕМЯ, СУБЪЕКТЫ, ИНФОРМАЦИЮ ИЗ ТАБЛИЦЫ1 ЗАКАЗАТЬ ПО ИНФОРМАЦИИ

0 голосов
/ 07 ноября 2011
SELECT
    <column list>
FROM
    My_Table
ORDER BY
    COALESCE(sub, id + 1),
    `time`

Предполагается, что столбец sub на самом деле NULL, а не просто пустой, если у него нет значения.Кроме того, столбец с именем «time» почти наверняка является плохой идеей, поскольку он не является описательным именем и является ключевым словом.Хотя это не зарезервированное слово (пока) в MySQL, оно, скорее всего, вызовет много путаницы.Другие примеры плохо именованных столбцов могут включать «info» и «sub».

...