Виталий Я.
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 років тому
Я ничего не понял. Но со стороны выглядит,
будто вы пытаетесь оптимизировать то, что в оптимизации не нуждается.
Чем вам два запроса не нравятся?