Software » [SQL] update d'un champ par rapport à un autre champ?
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:23:19,
Par blietaerUne table.
Une colonne de timestamp, du genre:
+-----------------+
| timestamp |
+-----------------+
| 16:07:03.611959 |
| 16:07:05.031506 |
| 16:07:05.158316 |
| 16:07:05.158477 |
| 16:07:05.192583 |
| 16:07:05.291956 |
| 16:07:05.319757 |
| 16:07:05.411969 |
| 16:07:05.441306 |
| 16:07:05.542032 |
+-----------------+
Pas besoin de la micro-seconde, donc on arrondi:
+-----------------------------------------------------------------------------------------------+
| CONCAT(SUBSTRING(timestamp, 1,9), SUBSTRING( LPAD(SUBSTRING(timestamp,10,6)+500, 6,'0'),1,3)) |
+-----------------------------------------------------------------------------------------------+
| 16:07:03.612 |
| 16:07:05.032 |
| 16:07:05.158 |
| 16:07:05.158 |
| 16:07:05.193 |
| 16:07:05.292 |
| 16:07:05.320 |
| 16:07:05.412 |
| 16:07:05.441 |
| 16:07:05.542 |
+-----------------------------------------------------------------------------------------------+
10 rows in set (0.00 sec)
Mais maintenant je veux placer ce résultat dans une autre colonne (vierge) de la MEME table..
Donc,
UPDATE mytable SET champ_vierge = ....?
merci!
Une colonne de timestamp, du genre:
+-----------------+
| timestamp |
+-----------------+
| 16:07:03.611959 |
| 16:07:05.031506 |
| 16:07:05.158316 |
| 16:07:05.158477 |
| 16:07:05.192583 |
| 16:07:05.291956 |
| 16:07:05.319757 |
| 16:07:05.411969 |
| 16:07:05.441306 |
| 16:07:05.542032 |
+-----------------+
Pas besoin de la micro-seconde, donc on arrondi:
+-----------------------------------------------------------------------------------------------+
| CONCAT(SUBSTRING(timestamp, 1,9), SUBSTRING( LPAD(SUBSTRING(timestamp,10,6)+500, 6,'0'),1,3)) |
+-----------------------------------------------------------------------------------------------+
| 16:07:03.612 |
| 16:07:05.032 |
| 16:07:05.158 |
| 16:07:05.158 |
| 16:07:05.193 |
| 16:07:05.292 |
| 16:07:05.320 |
| 16:07:05.412 |
| 16:07:05.441 |
| 16:07:05.542 |
+-----------------------------------------------------------------------------------------------+
10 rows in set (0.00 sec)
Mais maintenant je veux placer ce résultat dans une autre colonne (vierge) de la MEME table..
Donc,
UPDATE mytable SET champ_vierge = ....?
merci!
Et au besoin s'arrêter.
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:33:04,
Par blietaerindice:
UPDATE mytable SET champ_vierge = CONCAT(SUBSTRING(timestamp, 1,9), SUBSTRING( LPAD(SUBSTRING(timestamp,10,6)+500, 6,'0'),1,3));
Tourne pendant des minutes et des minutes (ok y a 12.700.000 rows, mais bon...)
Mais j'ai pas mis de WHERE, ni de FROM ni de...bref, j'ai peur!
UPDATE mytable SET champ_vierge = CONCAT(SUBSTRING(timestamp, 1,9), SUBSTRING( LPAD(SUBSTRING(timestamp,10,6)+500, 6,'0'),1,3));
Tourne pendant des minutes et des minutes (ok y a 12.700.000 rows, mais bon...)
Mais j'ai pas mis de WHERE, ni de FROM ni de...bref, j'ai peur!
Et au besoin s'arrêter.
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:35:20,
Par Jean-ChristophePour les questions relatives à SQL, je vous invite à prendre contact avec chou_ qui a suivi une formation poussée dans le domaine
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:40:56,
Par blietaerMon truc a marché
et donc _chou tu confirmes?
et donc _chou tu confirmes?
Et au besoin s'arrêter.
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:54:25,
Par Jean-ChristopheTiens, blague à part, je croyais qu'on ne devait pas stocker de valeur calculée dans une DB. Je suppose qu'il y a une raison, non?
Pourquoi tu le fais, alors?
Pourquoi tu le fais, alors?
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:56:02,
Par zionJC> On le fait pour des raisons de performance souvent. Exemple ici, de calculer le nombre de topics dans une catégorie ou de messages dans un topic ce sont des valeurs calculées, mais stockées pour éviter des calculs qui pénaliseraient gravement l'affichage
C'est juste pour la performance
C'est juste pour la performance
Je suis le Roy