2017-07-06 1 views
0

J'essaie de comparer une nouvelle valeur avec la valeur existante à partir de données basées sur une instruction SQL, à savoir aller à la table obtenir la valeur spécifique et vérifier si la valeur est plus grande que la nouvelle valeur puis met à jour une autre table, sinon ne fait rien.MYSQL QUERY si existe alors obtenir cette valeur de colonne spécifique et comparer avec la nouvelle valeur

Mon problème est que je ne suis pas capable de convertir la valeur de la requête en une chaîne à comparer dans une instruction if.

Mon code:

IF (EXISTS (SELECT * FROM table_1 WHERE Id =NEW.Id and time = NEW.time ORDER BY price ASC LIMIT 1)) THEN 

     IF (price < NEW.price) THEN 
//----------^^^^^^----------------- there is one column in table_1 not able to convert it to string to check in if statement/// 

      UPDATE historical SET low_price = NEW.price WHERE id =NEW.Id and date_time = NEW.time; 

     END IF; 
    END IF; 

Répondre

2

Si le prix est une colonne table_1, vous pouvez déplacer la seconde si la condition à la première si la condition.

IF (EXISTS (SELECT * FROM table_1 WHERE Id =NEW.Id and time = NEW.time and price < NEW.price ORDER BY price ASC LIMIT 1)) THEN 

     UPDATE historical SET low_price = NEW.price WHERE id =NEW.Id and date_time = NEW.time; 

END IF; 
+0

merci pour la réponse je l'ai essayé, mais il est comme je veux cette valeur dans une chaîne que j'utilise deux opérations est> et celui-ci est <à ce moment-là ça devient confus et créer un problème – Shaik

+0

son exécution au mauvais moment où il ne devrait pas – Shaik

+0

"O WH (prix que varchar) NNguyen