Когда я делаю обновление с внутренними объединениями, изменение столбцов предложения ON влияет на обновление?

0

Например, если у вас есть этот запрос:

UPDATE table1 
INNER JOIN table2 ON table1.id = table2.id 
SET table2.id = table1.idSetting 
WHERE table2.property IS NULL

Вы можете заметить, что идентификатор table2 изменяется, когда значение table2.property равно null, мой вопрос: если это повлияет на "затронутые строки" при запуске запроса или нет.

Я задаю этот вопрос, потому что я пытаюсь сделать подобное обновление, которое должно обновить некоторые столбцы, которые находятся во внутренних предложениях, но предполагается, что это повлияет на 36000 строк, но, наконец, влияет только на 4500 строк.

Благодарю.

Теги:
rows-affected

1 ответ

0

Затронутые строки подсчитываются как строки, которые в результате обновления изменяются на другое значение. Если у них уже есть значение, которое вы их устанавливаете, они не считаются "затронутой" строкой.

Вы можете проверить:

SELECT COUNT(*) FROM table1 
INNER JOIN table2 ON table1.id = table2.id 
WHERE table2.property IS NULL

Возвращает ли выше 36000 или 4500? Он должен вернуть 36000, если количество строк соответствует условиям.

SELECT COUNT(*) FROM table1 
INNER JOIN table2 ON table1.id = table2.id 
WHERE table2.property IS NULL
AND table2.id <> table1.idSetting

В то время как это может вернуть 4500.

  • 0
    возвращает 36000 строк

Ещё вопросы

Сообщество Overcoder
Наверх
Меню