|
@@ -128,4 +128,39 @@ MariaDB [test]> SELECT * FROM person;
|
|
|
2 rows in set (0.00 sec)
|
|
|
```
|
|
|
|
|
|
+### Условие изменения `WHERE`
|
|
|
|
|
|
+Для того, что бы `UPDATE` изменял не все, а только нужные записи, в конце запроса добавляется конструкция `WHERE` и логическое условие, схожее с применяемыми
|
|
|
+в операторах `if` в языках программирования. Обычно в этом условии используется значение поля автоинкремента как уникальный идентификатор записи:
|
|
|
+
|
|
|
+```mysql
|
|
|
+MariaDB [test]> UPDATE person SET date_of_birth = '1999-05-25' WHERE person_id = 2;
|
|
|
+Query OK, 1 row affected (0.01 sec)
|
|
|
+Rows matched: 1 Changed: 1 Warnings: 0
|
|
|
+
|
|
|
+MariaDB [test]> SELECT * from person;
|
|
|
++-----------+---------------+---------+---------+-------------+--------------------------+
|
|
|
+| person_id | date_of_birth | name | surname | father_name | fullname |
|
|
|
++-----------+---------------+---------+---------+-------------+--------------------------+
|
|
|
+| 1 | 2016-10-23 | Ivan | Ivanoff | Petrovich | Ivan Petrovich Ivanoff |
|
|
|
+| 2 | 1999-05-25 | Vasiliy | Pupkin | Petrovich | Vasiliy Petrovich Pupkin |
|
|
|
++-----------+---------------+---------+---------+-------------+--------------------------+
|
|
|
+2 rows in set (0.00 sec)
|
|
|
+```
|
|
|
+
|
|
|
+Также, для ограничения количества записей, подверженных изменению, можно добавить `LIMIT`:
|
|
|
+
|
|
|
+```mysql
|
|
|
+UPDATE <table> SET
|
|
|
+ column1 = value1,
|
|
|
+ column2 = value2,
|
|
|
+ .....
|
|
|
+ columnN = valueN
|
|
|
+WHERE
|
|
|
+ <cond>
|
|
|
+LIMIT
|
|
|
+ 1
|
|
|
+```
|
|
|
+
|
|
|
+`LIMIT 1` означает, что UPDATE должен изменить **не более** одной записи. Таким образом вы можете минимизировать последствия вашего запроса, если не уверены в том,
|
|
|
+что записано в `WHERE` в качестве условия.
|