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

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-Christophe
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?
   
[SQL] update d'un champ par rapport à un autre champ?
Publié le 31/03/2008 @ 13:56:02,
Par zion
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:
Je suis le Roy :ocube:
Répondre - Catégorie:  
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?