MySQL časť desiata - použitie príkazu UPDATE

V minulej časti MySQL sme si niečo povedali o manipulácii s dátami v MySQL. Stručne sme si ukázali použitie príkazu DELETE a UPDATE. Keďže príkaz UPDATE má trochu obsiahlejšie použitie, pozrieme sa naň trochu bližšie.

Na konci našej deviatej časti sme sa rozlúčili nasledovným príkazom a konečná podoba našej tabuľky authors2 bola nasledovná:

mysql> UPDATE authors2
    -> SET autor = "Janko Hrasko"
    -> WHERE id = 2;
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM authors2;
+----+--------------+----------------+---------+------+
| id | autor        | mail           | telefon | vek  |
+----+--------------+----------------+---------+------+
|  1 | Andrej       | annn@dreeej.sk | 145879  |   25 |
|  2 | Janko Hrasko | jann@email.sk  | 1458796 |   29 |
|  3 | Marek        | frank@nic.sk   | 7458741 |   24 |
+----+--------------+----------------+---------+------+
3 rows in set (0.00 sec)

Príkaz UPDATE je možné rozviesť a použiť naraz až viacero podmienok v jenom príkaze. Dôležité je vedieť, že tieto podmienky musia byť navzájom oddelené čiarkou.

mysql> UPDATE authors2
    -> SET autor = "Andrej Kral",
    -> telefon = "8954623",
    -> vek = 27
    -> WHERE id = 1;
Query OK, 1 row affected (0.06 sec)

mysql> SELECT * FROM authors2;
+----+--------------+----------------+---------+------+
| id | autor        | mail           | telefon | vek  |
+----+--------------+----------------+---------+------+
|  1 | Andrej Kral  | annn@dreeej.sk | 8954623 |   27 |
|  2 | Janko Hrasko | jann@email.sk  | 1458796 |   29 |
|  3 | Marek        | frank@nic.sk   | 7458741 |   24 |
+----+--------------+----------------+---------+------+
3 rows in set (0.00 sec)

V tomto prípade sme pre zmenu v tabuľke authors2 použili viacero podmienok naraz, ktoré sme navzájom oddelili pomocou čiarok. Avšak s príkazom UPDATE sa dajú robiť aj komplikovanejšie operácie. Jednu z nich si ukážeme. V tabuľke authors2 pridáme všetkým autorom starším ako 23 rokov dva roky naviac z dôvodu chybného zadania údajov. Problém vyriešime nasledovne:

mysql>UPDATE authors2
 -> SET Vek = Vek + 2
 -> WHERE Vek > 23;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM authors2;
+----+--------------+----------------+---------+------+
| id | autor        | mail           | telefon | vek  |
+----+--------------+----------------+---------+------+
|  1 | Andrej Kral  | annn@dreeej.sk | 8954623 |   29 |
|  2 | Janko Hrasko | jann@email.sk  | 1458796 |   31 |
|  3 | Marek        | frank@nic.sk   | 7458741 |   26 |
+----+--------------+----------------+---------+------+
3 rows in set (0.00 sec)

Výsledok je na prvý pohľad zrejmý z použitého selectu. S príkazom UPDATE sa dajú robiť skutočne rozmanité pokusy, je len na Vás aby ste ho poriadne otestovali.

Developer,
Stiahnuté z Developer.sk