Виталий Я.
659 сообщений
#14 лет назад
Вот возник такой вопрос :
Можно ли одним SQL запросом извлечь из бд несколько записей , перед этим увеличив значение определенного поля в каждой из них на 1 ?
Николай М.
1895 сообщений
#14 лет назад
Select pole+1
from table1;
Виталий Я.
659 сообщений
#14 лет назад
MMM_Corp, так изменения не сохраняются, нужно чтобы в бд оставались значения +1
Евгений Б.
5330 сообщений
#14 лет назад
Одним не получится. update в select не ввернуть
Николай М.
1895 сообщений
#14 лет назад
Запросто, делаете:
update table1
set pole=pole+1;

Select pole
from table1;


транзакции по необходимости

Я так понимаю у вас хитрая задача увеличения счетчика просмотров страницы напр.?) тогда см. create view
Евгений Б.
5330 сообщений
#14 лет назад
1. это 2 запроса
2. многие языки и sql модули к ним не умеют работать с более чем 2-мя запросами в "1 строке"

решается все хранимыми процедурами, но уж никак не View
Роман Беляев
16382 сообщения
#14 лет назад
Я как по мне, то все решается просто вторым запросом и все
Евгений Б.
5330 сообщений
#14 лет назад
Цитата ("frig"):
Я как по мне, то все решается просто вторым запросом и все


Цитата ("Xazzzi"):
перед этим увеличив значение определенного поля в каждой из них на 1 ?


ага, причем первый запрос будет на адпдейт по выборке, а второй - сама выборка
Николай М.
1895 сообщений
#14 лет назад
Во первых, какая СУБД?
напр. mssql позволяет сделать вюху с любим содержимым, главное чтобы вюха чтобы возвращала набор данных либо текст, что по сути делает его аналогом тригера на селект)
во вторых, тот же долбаный ПХП версии 4, не умеет работать с хранимками, как сейчас не знаю
во третих: что такое 1 запрос? чем один запрос 1 или больше операций заключенных в транзакцию не есть 1 операцией? по сути ничем...

в даном случаи конечно идеальней всего сделать хранимку
Виталий Я.
659 сообщений
#14 лет назад
Субд MySQL , задача - подет количества человек онлайн на странице, суть в том, что при выборке из базы если эта запись получена клиентом впервые, стетчик в ней увеличивается на 1.
Записи добавляются с периодичностью в 1 минуту, с таким же интервалом клиенты проверяют поступления в базу.
Вот собственно и думаю )
Константин П.
1351 сообщение
#14 лет назад
Я ничего не понял. Но со стороны выглядит,
будто вы пытаетесь оптимизировать то, что в оптимизации не нуждается.
Чем вам два запроса не нравятся?