Цикл запроса обновления в запросе на выборку.

Вы знаете, что у нас есть проблема, когда тип вопроса на Stack Overflow имеет 6000 просмотров и только 1 неверный ответ. Пример и другой и другой.

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

Давайте поговорим о синтаксисе MySQL, который считается ущербным, особенно когда вам нужно создавать сложные CRUD-приложения, которые должны: сохранять в начало и середину, находить, где что-то есть что-то, но только там, где что-то есть что-то другое и замените только те из них, где другая вещь является четным числом, бла-бла-бла…

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

Сценарий дела:

  • У нас есть база данных с таблицей с именем Пользователи.
  • У каждого пользователя есть значения:{name,age,dob}
  • Поле дата рождения представляет собой «дату рождения», хранящуюся в формате Д М Г.
  • Но мы хотим, чтобы он был переписан и обновлен до Г-М-Д.
  • Мы хотим, чтобы это было сделано примерно для 70 пользователей с помощью простого сценария MySQL.

Теперь, конечно, если мы хотим сделать это для одного пользователя, все, что нам нужно, это:

SELECT FROM USER WHERE name = “something_given_manually” {
GET THE USERS OLD D M Y
UPDATE THE USERS dob = Y-M-D
}

Постановка проблемы:

Проблема в том, что для нескольких пользователей мы не можем указать имя каждого пользователя, и оказывается, что мы не можем зациклить запрос UPDATE внутри запроса SELECT, потому что наш первоначальный выбор запрос завершается до запуска нашего запроса на обновление. Да!

Но у нас есть решение

Что я сделал, так это:

  • Добавьте в таблицу новый столбец (поле) с именем dwp со значением по умолчанию blah.
  • Выбрана и обновлена ​​добавление одного пользователя с blah в его dwp.
  • Затем очистил значение пользователей в столбце dwp.
  • При следующем запуске кода будет выбран и обновлен следующий пользователь.

Расслабьтесь, это проще, чем кажется:

Теперь, конечно, когда это произойдет, это произойдет только один раз, поэтому нам нужно было запускать код, пока все пользователи не будут обновлены. Вот простой JS-код, который перезагружает страницу через 5 секунд, пока не будет выполнен запрос на выборку, благодаря нашему оператору while.

//reload page to run the script for the next update
//I’m using 5 seconds here to compensate for server response time.
echo "<script>
setTimeout(function(){
location.reload();
}, 5000);
</script> ";

Теперь возьмите свой яд и наслаждайтесь шоу.

Это может что-то исправить для вас? Я думаю, именно благодаря таким интересным приемам большинство разработчиков занялись написанием кода; из-за того, как сложно найти способ s делать удивительные вещи с несколько неограниченным, но ограниченным набором инструментов. Сегодня у нас есть много фреймворков, которые лишают вас большей части удовольствия, поэтому я надеюсь, что это вернуло немного того огня.

… и никогда не падайте духом, ребята.