привет. Есть вопрос, который интересует, но пока нет опыта, чтобы однозначно на такой вопрос ответить.
связка php+mysql(pdo)
Задача - начисто проапдеитить 1000 или больше строк в какой-то таблице за раз. "начисто" - значит, что предыдущие данные нас не интересуют.
Строка имеет свой уникальный ключ.
Способы решения.
1 Цикл. В каждой итерации делать запрос на update.
for ($i = 0; $i < count($arr); $i++) { $value = $arr[$i]['value']; $id = $arr[$i]['id']; $sth = $this->_db->prepare("UPDATE table SET value=$value WHERE id=$id;"); $sth->execute(); $sth->fetch();}
2 Заводим строчную переменную. Цикл. В каждой итерации дописываем нашу переменную запросом. Т.е вконце строка будет иметь вид кучи независимых запросов, разделенных точкой с запятой.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
Yazon_Nile
привет. Есть вопрос, который интересует, но пока нет опыта, чтобы однозначно на такой вопрос ответить.
связка php+mysql(pdo)
Задача - начисто проапдеитить 1000 или больше строк в какой-то таблице за раз. "начисто" - значит, что предыдущие данные нас не интересуют.
Строка имеет свой уникальный ключ.
Способы решения.
1 Цикл. В каждой итерации делать запрос на update.
2 Заводим строчную переменную. Цикл. В каждой итерации дописываем нашу переменную запросом. Т.е вконце строка будет иметь вид кучи независимых запросов, разделенных точкой с запятой.
3 Цикл. В каждой итерации удалять строку из таблицы и формировать insert запрос, который запустить после того, как отработает цикл.
Третий вариант можно также модифицировать, не выполняя делит запрос каждый раз, а тоже сохранять его в переменную и выполнить потом все одним скопом.
Какой из представленных способов отработает быстрее остальных?
Edited by Yazon_NileМожет есть ещё способы?
Спасибо за помощь.
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.