Sujet: [SQL] update d'un champ par rapport à un autre champ?
31/03/2008 @ 13:23:19: blietaer: [SQL] update d'un champ par rapport à un autre champ?
Une 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!
31/03/2008 @ 13:33:04: blietaer: [SQL] update d'un champ par rapport à un autre champ?
indice:
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! :itm:
31/03/2008 @ 13:35:20: Jean-Christophe: [SQL] update d'un champ par rapport à un autre champ?
Pour les questions relatives à SQL, je vous invite à prendre contact avec chou_ qui a suivi une formation poussée dans le domaine :wink:
31/03/2008 @ 13:40:56: blietaer: [SQL] update d'un champ par rapport à un autre champ?
Mon truc a marché :zoubi:

et donc _chou tu confirmes?
31/03/2008 @ 13:54:25: Jean-Christophe: [SQL] update d'un champ par rapport à un autre champ?
Tiens, 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?
31/03/2008 @ 13:56:02: zion: [SQL] update d'un champ par rapport à un autre champ?
JC> 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 :smile:

C'est juste pour la performance :smile:
Retour