Обновление SQL и выбор в одном запросе - PullRequest
4 голосов
/ 13 января 2012

Есть ли в SQL (MySQL) способ увеличить значение, а также вернуть значение в одном запросе.Я пытаюсь избежать выполнения двух запросов, например:

QUERY 1

UPDATE my_table SET my_col = (my_col + 1) WHERE something = something_else;

QUERY 2

SELECT my_col FROM my_table WHERE something = something_else;

Спасибо.

Ответы [ 3 ]

2 голосов
/ 13 января 2012

Насколько мне известно, в MySQL такой возможности пока нет, но взгляните на этот вопрос , чтобы найти возможный обходной путь, который, по крайней мере, позволяет вам выбирать и обновлять работу с теми же данными транзакционно.1003 *

0 голосов
/ 13 января 2012

Я не знаю, какой язык сценариев вы используете, но вот пример создания хранимой процедуры в MySQL, которая возвращает обновленное значение, чтобы вы могли обновить и выбрать одну операцию:

Получите обновленное значение в MySQL вместо затронутых строк

0 голосов
/ 13 января 2012

Невозможно сделать выбор и обновление одновременно. Если вы хотите избежать выбора, вы можете объявить переменную и поместить туда значение, но это поместит последнее обновленное значение строки в переменную.

declare @value int

UPDATE my_table SET my_col = (my_col + 1), @value = (my_col + 1) WHERE something = something_else;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...