Автор Тема: Как совместить запрос на обновление и на выборку SQL  (Прочитано 3575 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vishenk@

  • Коллежский регистратор
  • *
  • Сообщений: 1
  • Репутация: 0
Есть большая база данных. Решили добавить новое поле с номером карточки. Нужно организовать присвоение нового номера карточки для текущей записи при нажатии на кнопку. Пробовала выполнять запрос на обновление по кнопке, но он что-то у меня не работает. В нем нужно найти максимальное значение номера корточки (числовой тип) и присвоить следующее. Он не хочет это делать одновременно - выдает ошибку, а если разбить на 2 запроса, то ругается что в запросе на обновление нельзя использовать результаты запроса на выборку...

посоветуйте как лучше это реализовать?

Оффлайн lordfry

  • Коллежский регистратор
  • *
  • Сообщений: 10
  • Репутация: 0
  • Пол: Мужской
копай в сторону Join :)

Оффлайн jx

  • Глобальный модератор
  • Коллежский асессор
  • *****
  • Сообщений: 291
  • Репутация: 16
  • Пол: Мужской
а что мешает сделать так:
Код: (sql) [Выделить]
SET @max = (SELECT MAX(n) FROM tmp);
SET @max = IFNULL(@max, 0);
UPDATE tmp SET n=@max+1 WHERE id=ROUND(1 + RAND()*10) LIMIT 1;

тут написано для MySQL, но смысл такой