Blackhold

Multiplicar por 1.5 campo en MySQL

Posted on febrer 5th, 2015 by admin

Me encuentro que tengo que multiplicar por 1.5 los registros de una tabla MySQL pero tengo 75.000 registros a actualizar… en su momento hice un programa para exportar los datos en formato csv y luego poder importarlos de nuevo… pero es que se me cansa el dedo al tener que hacerlo a mano :P así que he buscado otra forma un poquito mas elegante para hacerlo. Por supuesto necesitas acceso a la base de datos!

mysql> select * from rates limit 0,10;
+-----------+----------------+---------------+---------+
| extension | destination    | establishment | price   |
+-----------+----------------+---------------+---------+
| 00101028  | Estados Unidos |             0 | 0.02304 |
| 0011      | Estados Unidos |             0 | 0.02304 |
| 001123    | Estados Unidos |             0 | 0.02304 |
| 001129    | Estados Unidos |             0 | 0.02304 |
| 001139    | Estados Unidos |             0 | 0.02304 |
| 001150    | Estados Unidos |             0 | 0.02304 |
| 001163    | Estados Unidos |             0 | 0.02304 |
| 001177    | Estados Unidos |             0 | 0.02304 |
| 001198    | Estados Unidos |             0 | 0.02304 |
| 001200    | Estados Unidos |             0 | 0.02304 |
+-----------+----------------+---------------+---------+
10 rows in set (0.00 sec)

mysql> update rates set price = price * 1.5;
Query OK, 75755 rows affected (0.19 sec)
Rows matched: 75757  Changed: 75755  Warnings: 0

mysql> select * from rates limit 0,10;
+-----------+----------------+---------------+---------+
| extension | destination    | establishment | price   |
+-----------+----------------+---------------+---------+
| 00101028  | Estados Unidos |             0 | 0.03456 |
| 0011      | Estados Unidos |             0 | 0.03456 |
| 001123    | Estados Unidos |             0 | 0.03456 |
| 001129    | Estados Unidos |             0 | 0.03456 |
| 001139    | Estados Unidos |             0 | 0.03456 |
| 001150    | Estados Unidos |             0 | 0.03456 |
| 001163    | Estados Unidos |             0 | 0.03456 |
| 001177    | Estados Unidos |             0 | 0.03456 |
| 001198    | Estados Unidos |             0 | 0.03456 |
| 001200    | Estados Unidos |             0 | 0.03456 |
+-----------+----------------+---------------+---------+
10 rows in set (0.00 sec)

mysql> update rates set establishment = establishment * 1.5;
Query OK, 2 rows affected (0.04 sec)
Rows matched: 75757  Changed: 2  Warnings: 0

Et voilà! :D

This entry was posted on dijous, febrer 5th, 2015 at 22:38 and is filed under bbdd. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

« »

guy fawkes