Сообщений: 981
Тем: 77
Зарегистрирован: Oct 2011
Дана таблица character_subclasses:
Итак смотрим на последнюю колонку
"class_index" -
здесь идут саб-класы по порядку у одного чара.
Что мне нужно сделать?
Необходимо все единцы("1") в колонки class_index, у повторяющихся charId установить на "+1...". Как сделать такой запрос? Весь день голову уже ломаю)
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
Думаю легче было за пол дня переписать в ручную.
Сообщений: 981
Тем: 77
Зарегистрирован: Oct 2011
L2CCCP, хех, а если 5к+ записей? Как ты себе это представляеш(сверка)?
Place, Ну я так примерно и предпологал, что без цикла ни как(( Просто думал. мало ли мож чето незнаю)
Сообщений: 321
Тем: 16
Зарегистрирован: May 2010
Репутация:
428
чет типа того
$all = mysql_num_rows(mysql_query("SELECT class_idexp FROM character_subclasses WHERE charid=1111"));
$i = 1;
while ($i <= $all) {
mysql_query('UPDATE character_subclasses SET class_index = $i WHERE charid=111 AND class_index=1');
}
Сообщений: 981
Тем: 77
Зарегистрирован: Oct 2011
DreamCast Написал:чет типа того
$all = mysql_num_rows(mysql_query("SELECT class_idexp FROM character_subclasses WHERE charid=1111"));
$i = 1;
while ($i <= $all) {
mysql_query('UPDATE character_subclasses SET class_index = $i WHERE charid=111 AND class_index=1');
}
Проблема в том, что чар не один) Попробуй твой запрос селект развернуть в цикл и задать все это в массив для вхиле. Сообщу об успехах. Спасибо за подсказку.
Сообщений: 981
Тем: 77
Зарегистрирован: Oct 2011
DreamCast Написал:в задании про множество чаров инфы не было)
Тада я бы пошел по стопам 2 поста в теме
)))
DreamCast Написал:на самом деле можно сделать и средствами SQL.
например многосоставный запрос или переменные в sql.
Добавлено через 55 секунд
да я тоже так думал, но все же учитываю множественность чаром без цикла кажись не обойдеться. В любом случае придеться записывать все в массивы, а тут тока цикл выполнит их полность.
Сообщений: 321
Тем: 16
Зарегистрирован: May 2010
Репутация:
428
10-09-2011, 08:52 PM
(Сообщение последний раз редактировалось: 10-09-2011, 08:54 PM DreamCast.)
нет возможности проверить, возможно, так будет работать тоже:
UPDATE character_subclasses SET class_index=(class_index+1)
WHERE charid=111
AND class_index=1
AND class_idexp=(SELECT class_idexp FROM character_subclasses WHERE charid=1111);
Добавлено через 2 минуты
точнее так)
UPDATE character_subclasses SET class_index=(SELECT MAX(class_index) FROM character_subclasses WHERE charid=1111)+1
WHERE charid=111
AND class_index=1
AND class_idexp=(SELECT class_idexp FROM character_subclasses WHERE charid=1111);
Сообщений: 981
Тем: 77
Зарегистрирован: Oct 2011
У меня наплыв идей проихошел)) ща делаю)