Добавление 10 к каждому значению в запросе MySQL - PullRequest
0 голосов
/ 31 октября 2018

Я хочу создать запрос, который добавит 10 ко всем значениям, например, возьмите таблицу ниже

name   values
A      10
B      20
C      30

$qry = mysqli_query($con,"SELECT * FROM table")

Я мог бы сделать это через php, но это могло бы создать много дополнительных вызовов SQL

while($row = mysqli_fetch_assoc($qry) {
   $new_value = $row['values']+10;
   $name = $row['name'];
   $qry2 = mysqli_query($con,"UPDATE table SET values=$new_value WHERE name='$name'");
 }

Но это может быть много sql запросов. Как мы можем просто обновить все значения в таблице в одном запросе?

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете просто обновить значение одним запросом:

UPDATE table SET values = values + 10;

И завернутый в PHP:

mysqli_query($con,"UPDATE table SET values = values + 10");

Это обновит все строки в таблице. Если вы хотите ограничить запрос, просто добавьте предложение where для полей, которые должны быть включены в подмножество:

mysqli_query($con,"UPDATE table SET values = values + 10 WHERE name='$name'");

Однако в этом решении, а также в вашем подходе, он открыт для SQL-инъекций. Вы должны использовать подготовленные операторы, чтобы избежать такого нежелательного поведения.

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