i want use @ mysql stored procedure follows:
set @pr_ans = '($x>22.5 , $x<27.5)'; set @pr_mine = 2; set @v_eval = replace(@pr_ans, '$x', @pr_mine); select if(@v_eval, 'right', 'wrong'); i got "right" changed value @pr_mine = 25;.
how can use expression in if statement?
your @pr_ans isn't evaluated, you're getting truthy response because string isn't null. want execute instead. how using following instead:
mysql> set @pr_ans = 'select (? > 22.5 , ? < 27.5) result'; mysql> prepare stmt1 @pr_ans; mysql> set @pr_mine = 2; mysql> execute stmt1 using @pr_mine, @pr_mine; +--------+ | result | +--------+ | 0 | +--------+ mysql> set @pr_mine = 25; mysql> execute stmt1 using @pr_mine, @pr_mine; +--------+ | result | +--------+ | 1 | +--------+ mysql> deallocate prepare stmt1; which give 0 or 1 false/true.
you keep use replace if chose, you're better off using prepared statement.
Comments
Post a Comment