不使用存储过程而在同一查询中使用的动态数据库名称

时间:2014-06-24 13:26:04

标签: mysql sql

是否可以在MySql中执行类似的操作:

从table_a a中选择*,CONCAT(schema_name,'。','my_table')为 database_name 内部联接table_b b在b.id = a.id上 a.id2 = c.id;

上的内连接 database_name c

基本上,database_name的值取自现有查询,并且它将在同一查询中使用。

是否可以在不使用存储过程的情况下执行此类操作? 如果没有,是否可以在不使用循环的情况下在Java中执行此操作?

1 个答案:

答案 0 :(得分:0)

在单个查询中无法执行此操作。但是,它并不需要存储过程。

查询中的标识符不能变量;当提交SQL文本时,MySQL需要实际知道对象的名称(表,列,函数等);标识符在执行时不会发生变化。

这并不需要存储过程,但它确实需要两个单独的SELECT语句。一个SELECT用于检索数据库标识符。并且其中的值可用于表示包含SQL文本的字符串,以便将另一个SELECT提交到数据库。