Я хотел обновить таблицу MySQL с определенными правилами. У меня, скажем, 3 столбца: ID, Name, Checked, и я хочу обновить Name для всех строк одинаково, где Checked = 0. В другой таблице у меня есть список «Имена», откуда я беру свои имена.
Можно ли это сделать с помощью одного запроса UPDATE или мне нужно использовать какой-то цикл? Возникнет ли проблема, если скажем, у меня есть 11 строк для обновления, но у меня есть 10 имен, как запрос обновляет эти поля.
Поле имени состоит из одного или нескольких значений? Было бы лучше, если бы вы могли опубликовать структуры таблиц Db для большей ясности.
Поле Name - это имена сотрудников. Список активных сотрудников указан в другой таблице. Поэтому каждый раз в месяц я хочу обновлять оставшуюся непроверенную строку с новыми сотрудниками и равномерно распределять.






Я нахожу решение:
UPDATE `table` SET `ID` = (select `ID` from `name` ORDER BY rand() LIMIT 1) WHERE `Lock_ID` = 0
Этот запрос будет случайным образом использовать имя из другой таблицы и обновлять его (это правильное решение на 99%), он будет перераспределять имя почти одинаково для каждой строки.
да, это могло произойти, обновите таблицу на основе условия с использованием набора в другой таблице. вы можете искать здесь на SO stackoverflow.com/questions/11709043/…