2017-10-15 35 views
-2

table réelle et sélectionnez est trop long donc je vais utiliser exemple simple pour ma questionComment utiliser entre parenthèses dans le champ de sélection de formule

j'ai une table (tbl_price) avec 2 colonne (price1, Prix2) lorsque les champs de sélection avec sélection simple comme celui-ci

SELECT price1-price2 from tbl_price 

Je n'ai pas prob LEM jusqu'à ce que utiliser des parenthèses dans select, aucun enregistrement retournera:

SELECT (price1-price2) from tbl_price 

actualy je veux choisir comme ceci:

SELECT (price1-price2)/price2*100 from tbl_price 
+0

Voir https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a- very-simple-sql-query – Strawberry

+1

Cet exemple est correct. Je suppose que vous avez une erreur de syntaxe dans la requête que vous exécutez (pas dans l'exemple simplifié ci-dessus), mais vous ne vérifiez pas les erreurs. Donc, "aucun enregistrement ne reviendra" signifie vraiment que la requête ne peut pas être analysée avec succès. Solution: ** vérifiez les erreurs ** chaque fois que vous préparez ou exécutez une requête. –

Répondre

0

Peut-être que vous essayez de traiter le résultat en PHP?

Essayez comme ceci:

dans MySql:

SELECT ((price1-price2)/price2*100) AS result FROM tbl_price 

en PHP:

echo($row['result']); 
+0

J'ai vérifié et le résultat est vide. aucune erreur ne s'est produite (mon db local est Mariadb) –

+0

j'ai trouvé que si l'utilisation + (price1 + price2) cela fonctionnera mais l'utilisation - (price1-price2) ne retournera aucun enregistrement. Pourquoi? –

+0

c'est ok sur mariadb et vide dans mysql :( –

0

Je trouve problème! mes champs n'ont pas été signés int.so le résultat sera non signé et aucun enregistrement ne sera retourné .mais si je change de colonne à signer. les résultats seront corrects