can anyone tell me how to use a variable table name in select syntax?? * from tablename
here tablename is a variable name ..i read tht it can be done using dynamic sql..but i am not able to do it..can anyone tell me the code for it...i tried writin a procedure like this..

create procedure vartable(tablename varchar(255)
declare varsql varchar(4000);
varsql='select * from tablename';

is this right?? or am i doin any syntax or semantic error??

SET @a = 'table';
SET @x := CONCAT('SELECT * FROM ', CONCAT(@a, '_', 'name'));
Prepare stmt FROM @x;
Execute stmt;

is same as

SELECT * FROM table_name;