Как правильно организовать изменений 50-100 строк в mysql?
На сайте есть каталог товара, нужно сделать так, чтобы можно было выделить галочками 50-100 позиций и изменить у них определенную характеристику. Как это в базе провернуть? Делать 50-100 запросов циклом? Как правильно?
Вот этого категорически делать не нужно. Изменения должны происходит в рамках одного запроса update, просто сформируйте массив из ID выбранных товаров и проставляйте его в условии where, используя оператор IN, например:
UPDATE table_items
SET option = true
WHERE id in (11, 45, 81);
Если для всех надо сделать что-то одинаковое - т.е. для всех значение одного поля поставить одинаковым - то update с where id in ....
иначе - для каждого изменения отдельный запрос;
Если драйвер бд позволяет можно сделать несколько запросов одновременно:
mysql.query('UPDATE ... WHERE ID = 1; UPDATE ... WHERE ID = 2;....'. ....)
RidgeA,
UPDATE .... WHERE ID IN(1,2,3) конструкция попадает на сервер одним запросом, в котором указан перечень применимых - оптимизируется как один запрос и выполняется в один заход
Пачка UPDATE даже если уходит в одном соединении с БД последовательно - обрабатывается как цепочка запросов и выполняется как серия запросов. Возможна некоторая оптимизация на стороне сервера, но не факт.