У меня на столе были смешаны даты, столбцы startDate и endDate необходимо переключить. Я использую SQL Server, и это можно сделать с помощью курсора в SQL Server, но в MySQL вы можете использовать только курсор внутри SP, который я не хочуMySQL: обновить несколько значений на основе informatin из оператора select
Следующий оператор возвращает все записи, которые необходимо обновить
select * from calendarTable where endDate < startDate;
Я попытался следующий код, но это первые устанавливает STARTDATE к значению ENDDATE то ENDDATE к новому значению STARTDATE так это заканчивается, поскольку обе даты являются одинаковыми и не переключился
update calendarTable
set startDate = endDate,
endDate = startDate
where startDate > endDate;
Является ли это Это способ сделать это в MySQL похожим на курсор в SQL Server или как вы это сделаете в MySQL?
но как бы вы сделали это для mutliple обновлений ... например, если мой оператор выбора 'выбрать * из calendarTable где ENDDATE
точно так же, как и для одной строки. mysql не работает «через» строки. строка - это немного юниверса сама по себе, и обновления работают только по отдельным строкам за один раз (если вы не начнете смешивать себя и другие более сложные вещи). Таким образом, даже если ваша таблица имеет 5000 записей, вы можете сделать 5000 отдельных «суб-обновлений» с помощью одного запроса «update ...». –
, то как вы устанавливаете временные значения в инструкции обновления, чтобы вы могли просто переключить два поля и не обновлять два поля с заданным значением? –