2011-05-11 4 views
1

J'ai une table de base de données qui contient des informations sur les commandes et enregistre automatiquement le prix actuel de l'or (prix mondial) au moment de l'entrée.Sélection basée sur la différence numérique

Si je regarde en arrière sur la table, et que le prix de l'or enregistré a une différence avec le cours actuel de l'or de +100, O veut le montrer dans un rapport.

Comment est-ce que j'écrirais la requête MySQL pour faire ceci? Je sais comment faire des datiffs mais pas des valeurs numériques.

Exemple:

select * from table where saved_price < current_price - 100 

Y at-il une meilleure façon de le faire?

Répondre

4

Utilisez Abs si le signe de la différence n'a pas d'importance:

select * from table where abs(saved_price - current_price) > 100 

Si le signe est intéressant, votre approche proposée est très bien. Je l'écrirais comme ça, mais utilisez la façon dont vous pensez est le plus lu et compréhensible:

select * from table where (current_price - saved_price) >= 100 
+0

besoin d'être un + merci – Jeff

Questions connexes