mysql if statement with string expression -


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