Calcul sous SQL

lacfab
Invité n'ayant pas de compte PHPfrance

29 févr. 2008, 02:30

Bonsoir,

Voilà j'ai un ami qui a une boutique en ligne et qui me demande de lui faire une requete pour sa base de donnée afin d'ajouter 10% à chaque prix.

Est ce possible ?

Merci d'avance.

Eléphant du PHP | 445 Messages

29 févr. 2008, 02:36

Essayes cela :

Code : Tout sélectionner

UPDATE MaTable SET MonChamp=MonChamp*110/100 // *110/100 Pour 10% // *120/100 Pour 20% // etc..

ViPHP
ViPHP | 5924 Messages

29 févr. 2008, 02:53

Mouarf, après on vient parler du pouvoir d'achat :D

ViPHP
AB
ViPHP | 5818 Messages

29 févr. 2008, 03:15

Mouarf, après on vient parler du pouvoir d'achat :D
L'a raison Sékiltoyai, conseilles plutôt

UPDATE MaTable SET MonChamp=MonChamp*90/100

Faut bien que certains se dévouent. Allez lacfab rentre en résistance :D

lacfab
Invité n'ayant pas de compte PHPfrance

29 févr. 2008, 03:18

merci bien c'est si simple que j'en ai honte !

Mammouth du PHP | 881 Messages

29 févr. 2008, 05:41

Pourquoi ne pas faire plus simple encore et multiplier par une valeur avec décimales:

90% = 0.90
+10% = 110% = 1.1

Code : Tout sélectionner

UPDATE MaTable SET MonChamp=MonChamp*0.75 // moins 25% UPDATE MaTable SET MonChamp=MonChamp*0.80 // moins 20% UPDATE MaTable SET MonChamp=MonChamp*0.85 // moins 15% UPDATE MaTable SET MonChamp=MonChamp*0.90 // moins 10% UPDATE MaTable SET MonChamp=MonChamp*0.95 // moins 5% UPDATE MaTable SET MonChamp=MonChamp*1.05 // plus 5% UPDATE MaTable SET MonChamp=MonChamp*1.10 // plus 10% UPDATE MaTable SET MonChamp=MonChamp*1.15 // plus 15% UPDATE MaTable SET MonChamp=MonChamp*1.20 // plus 20% UPDATE MaTable SET MonChamp=MonChamp*1.25 // plus 25%
Et pourquoi pas un demi-prix?

Code : Tout sélectionner

UPDATE MaTable SET MonChamp=MonChamp*0.5
Là, tu parles!


Est-ce que les multiplications par décimales sont moins performantes qu'une multiplication suivie d'une division (question technique sérieuse) Il me semble qu'une opération soit plus rapide à faire que deux, non?
Soyez artisans de paix

ViPHP
ViPHP | 5924 Messages

29 févr. 2008, 13:12

La multiplication avec décimales demandera une opération de multiplication en assembleur, et la multiplication+division demande la multiplication et la division en assembleur, sachant que ces opérations demandent à peu près le même nombre d'instructions, et ce sera la même chose côté sql.

Donc l'opération demandera un peu moins de deux fois de temps pour la multiplication + division que pour la multiplication seule, qu'elle soit flottante ou non…

Mammouth du PHP | 881 Messages

29 févr. 2008, 16:00

Merci,c'est bon à savoir que - parfois - l'ordinateur sait faire les choses de la même manière que l'humain, permettant ainsi d'avoir un code clair et lisible.
Soyez artisans de paix