Есть ли задание для обновления одного и того же столбца 2 раза в одном и том же запросе UPDATE, как указано ниже?UPDATE один и тот же столбец несколько раз в запросе
UPDATE tbl SET a = 5, b = 'something', a = 6 WHERE c = 'whatever';
Есть ли стандартизированное поведение для этого, или это могло бы варьироваться от вкусов SQL (например, это «неопределенное поведение»)? Беглый тест с sqlite, по-видимому, указывает, что они выполняются слева направо, поэтому последнее значение столбца будет результатом, но это не означает, что это всегда будет так.
Редактировать: Причина, по которой я пытаюсь это сделать, это проверить SQL-инъекцию для проекта класса. Одно из полей в UPDATE несложно введено, и я пытаюсь использовать его для перезаписывания ранее полей SET из того же запроса.
Зачем вам это делать? Возможно, образцы данных и желаемые результаты помогут нам понять вашу цель. В 'mysql' он будет обновляться с последним значением, которое вы укажете -' sql server' даже не разрешит его. Что вы пытаетесь достичь? – sgeddes
@sgeddes Я обновил сообщение. – iobender
Порядок, в котором заданы 'set', не указывается вообще. Данная база данных может указывать на лексическое упорядочение, но это не гарантируется. –