MySQL Update столбец с заявлением - PullRequest
       13

MySQL Update столбец с заявлением

0 голосов
/ 14 сентября 2009

Я хотел бы сделать что-то вроде следующего

UPDATE table SET column = other_column IN(complex_statement)

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

Альтернатива будет делать

UPDATE table SET column = 0;
UPDATE table SET column = 1 WHERE other_column IN(complex_statement)

1 Ответ

4 голосов
/ 14 сентября 2009

Это зависит от того, является ли «другой сложный оператор» «коррелированным» подзапросом или нет. «Коррелированный» подзапрос - это тот, в котором результаты зависят от значения строки во «внешнем» запросе.

Таким образом, если сложный оператор имеет ссылку на столбец в вашей внешней таблице запросов, то это «коррелированный» подзапрос, и ответом будет «да», он будет оцениваться в каждой строке. В противном случае, №

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...