Алгоритм оптимизации SQL

247
15 декабря 2016, 15:55

Смотрите есть база данных, допустим в ней одна таблица, в которой один столбец. Столбец id, ну и в нем такие значения: 1,2,3,6,7,9,12.
Как (скажите алгоритм) при помощи SQL и PHP, можно сделать такие значения: 1,2,3,4,5,6,7, то есть заново проиндексировать?

Answer 1

Если id - инкрементное поле, то вариант такой:

CREATE TEMPORARY TABLE `tab_temp` SELECT * FROM `tab`;
TRUNCATE TABLE `tab`;
INSERT `tab` (`field1`, `field2`) SELECT `field1`, `field2` FROM `tab_temp`;
Answer 2

Мне кажется, что придется всю таблицу считывать в массив ($arr[$key]), где $key и есть ваш id. Потом этот массив надо вручную отсортировать. Я написал простой пример тут.

Сразу предупреждаю, что идея не претендует на 100% правильность, если найдется более простое, быстрое и умное решение, буду очень рад)

READ ALSO
Выборка из базы данных MySQL номера строки при произвольной выборке

Выборка из базы данных MySQL номера строки при произвольной выборке

Есть ситуацияЕсть новости скажем их 500, на разных страницах, он выводятся в разном порядке с пагинацией

169
Парсер данных из файла

Парсер данных из файла

Подскажите пожалуйста, как корректно реализовать парсер данныхОписание: Имею длинный список, все данные из этого списка удаляются раз в месяц,...

186
IDE для написания SQL структуры таблиц

IDE для написания SQL структуры таблиц

Подскажите хорошую IDE(если такова существует)

126