select * from table现在想问table可以使用自定义的变量或者是嵌套的么列名可以 select  unhex(xxxxx) from table 这样的方式值解密我指定的列名,但是这样对于table的名字就会报错。
现在想要将table名字绕过一个关键字的过滤。所以就需要使用一些字符串函数或者变量等来拼接,但是都不可以另外可以 使用 select * from (select tablename from tmp)
这样的方式来使用table名字么。。求大神指导

解决方案 »

  1.   

    MYSQL不支持这种,只能通过字符串拼接得到SQL语句的内容,然后执行。
    或者在自己的程序中进行字符串拼接,或者在MYSQL中利用存储过程来拼接(PREPARE)
      

  2.   

    set @asql=concat('select * from ','tt');
    prepare stml from @asql;
    execute stml;
      

  3.   

    不可以,MYSQL没有这样的功能,其他的流行数据库也没不能这么干。只能动态的拼接。如2楼所示。