Операция с числами в sql

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Есть таблица, в ней 3 поля
Поле status заполнено числом 0
Планируется заполнения 1-2-3
Как добавлять что ли к 0 числа?
Типа: 0+1
в бд уже 1
дальше 1+1
2
2+1
3
Типа так, как сделать? данных может и не быть в таблице, заполняю поля сам
типо вот так
$sql = mysql_query("INSERT INTO `real_status` (author_user,uid,status) VALUES ('$a','$b','$c+')");
 
у тебя заполнение как будет идти?
сейчас это очень похоже на increment id.
Опиши более подробно, как должно работать?
То есть у тебя при вставки все статусы = 0 или как раз новая строчка статус = последнее значение + 1 ? Другими словами (increment)
 
у тебя заполнение как будет идти?
сейчас это очень похоже на increment id.
Опиши более подробно, как должно работать?
То есть у тебя при вставки все статусы = 0 или как раз новая строчка статус = последнее значение + 1 ? Другими словами (increment)
Пустая таблица, status по умолчанию равно 0
Дальше мне нужно каждый раз прибавлять к status +1
Делать новый запрос и узнавать какое там число в status не хочется...
 
а при удалении записи(ей) что будет со статусами?.. выравниваться (что бы подряд шли), или пофиг?..

приведите схему таблицы (запрос для создания).
 
а при удалении записи(ей) что будет со статусами?.. выравниваться (что бы подряд шли), или пофиг?..

приведите схему таблицы (запрос для создания).
Пока не думал над удалением, но так то пофиг
Таблица с тремя полями author_user - текст,uid - номер,status - номер и все
 
вопрос я не просто так задал.. если вам просто последовательная нумерация нужна, поставьте поле в auto_increment (ALTER TABLE real_status MODIFY COLUMN status INTEGER NOT NULL AUTO_INCREMENT), и не обновляйте его при insert/update - само будет последовательно нумероваться..

если же вам нужна иная логика (напр. выравнивание при удалении или ещё что), имеет смысл озвучить задачу полностью (с учетом планируемого объема таблицы, отношения чтения к вставкам/удалению и т.п.).. напр. можно обрабатывать запрос триггером..

зы.. автоинкремент при удалении полей не выравнивается..
 
Пишу небольшой скриптик, идея в том что юзер голосует, голос = 1
создаю одно поле для каждого uid (номер юзера)
Дальше при каждом голосовании нужно обновлять status у определенного uid, сейчас проверяю есть ли запись с таким uid, если нет создаю, если да не знаю что делать) спрашиваю потому у вас) есть вариант вытягивать status заранее потом уже суммировать с +1
 
$p = mysql_query("SELECT status FROM real_status WHERE uid =".$uid."");
$p = mysql_fetch_assoc($p);
можно так сделать и потом суммировать
Но подозреваю что это не самый лучший вариант, все таки + запрос
 
а..
UPDATE real_status SET status = status + 1 WHERE uid = 123;
 
а..
UPDATE real_status SET status = status + 1 WHERE uid = 123;
Как все просто...
Не подскажите где тут ошибка (подозреваю что вся конструкция сплошная ошибка :D)
PHP:
mysql_query("IF EXISTS SELECT verify6 FROM ".DB::table('common_member_verify')." WHERE uid =".$uid."
THEN
UPDATE `pre_common_member_verify` SET verify6='1' WHERE uid =".$uid."
ELSE
INSERT INTO `pre_common_member_verify` (`uid`, `verify1`, `verify2`, `verify3`, `verify4`, `verify5`, `verify6`, `verify7`) VALUES
($uid, 0, 0, 0, 0, 0, 1, 0) WHERE uid =".$uid."");
 
Назад
Сверху