[mysql] Перетасовать id в таблице

12
dimidrol
На сайте с 29.09.2005
Offline
191
712

есть таблицы, в ней id - auto_increment unique.

задача перетасовать индекс (id) в порядке возрастания одного параметра (допустим num)


$Query='SELECT * FROM `posts` ORDER by `num` DESC';
$res=$db->Query($Query);
while($result = mysql_fetch_array($res,MYSQL_ASSOC))
{....
}

Как именно перетасовать при условии что может попасться да одинаковых id (новое отсортирование значение и старое неотсортированое значение в другой строке)?

Иногда полезно проигрывать - это держит тебя в тонусе... Мне так рассказывали (с) Shark Покупаю сайты (стройка/отделка/стройматериалы) по адекватной цене. Предложения в личку. Траф - обязателен
LEOnidUKG
На сайте с 25.11.2006
Offline
1755
#1

Что ещё за слово перетасовать? Осортировать вам нужно по полю num что-ли?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
stifler_x
На сайте с 19.06.2008
Offline
193
#2

Что такое поле posted?

dimidrol
На сайте с 29.09.2005
Offline
191
#3
LEOnidUKG:
Что ещё за слово перетасовать? Осортировать вам нужно по полю num что-ли?

да

stifler_x:
Что такое поле num?

integer

stifler_x
На сайте с 19.06.2008
Offline
193
#4

Может вместо DESC попробуйте ASC :)

dimidrol
На сайте с 29.09.2005
Offline
191
#5
stifler_x:
Может вместо DESC попробуйте ASC :)

да не важно в каком направлении сортируется. важно не получить

Invalid query: Duplicate entry '1' for key 'PRIMARY'
LEOnidUKG
На сайте с 25.11.2006
Offline
1755
#6

ТС, ничерта не понятно.

Можете задачу описать нормально то? Вы что вообще хотите сделать?

Invalid query: Duplicate entry '1' for key 'PRIMARY'

откуда это и что вы пытаетесь сделать?

siv1987
На сайте с 02.04.2009
Offline
427
#7
dimidrol:
Как именно перетасовать при условии что может попасться да одинаковых id (новое отсортирование значение и старое неотсортированое значение в другой строке)?

Перетасовать их тоже в соответствие с новыми ид.

http://www.google.ru/search?hl=ru&newwindow=1&client=opera&hs=BHd&rls=ru&sa=X&ei=1fZlT8n0DILA8QPxpMm7CA&ved=0CBwQvwUoAQ&q=%D0%9A%D0%B0%D0%BA+%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C+%D0%B8%D0%B4+%D1%83+%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9+auto_increment&spell=1

Alexa1
На сайте с 11.02.2009
Offline
42
#8
FROM posts ORDER BY date DESC, id DESC

Сортировка по дате и id в обратном порядке (новые записи сверху).

Только неясно, как у вас id может быть одинаковым? Это нереально (если только я что-то не путаю).

Нет неразрешимых проблем, есть неприятные решения. Мастерская сайтов (http://bd52.ru/) - создание ИМ на Diafan.cms
dimidrol
На сайте с 29.09.2005
Offline
191
#9

Есть таблица. В ней есть поле id, которое является auto_increment и unique. Сейчас в таблице огранизовалась следующея ситуация


id ... num ... posted
1 4 1000000
2 6 1000001
3 3 1000002

Задача - привести таблицу к новому виду без создания временной таблицы


id ... num ... posted
1 3 1000002
2 4 1000000
3 6 1000001

при решении "в лоб" (Select с сортировкой по num и update на поле id) вызывает

Invalid query: Duplicate entry '1' for key 'PRIMARY'

т.к. в первой итерации получается


id ... num ... posted
1 4 1000000
2 6 1000001
1 3 1000002
EA
На сайте с 15.06.2006
Offline
70
#10

зачем так изменять таблицу?

при выводе данных же можешь их отсортировать как хочешь, по num, зачем вобще изменять id?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий