有没有可能在MySQL中做这样的事情:
选择*,CONCAT(schema_name,'.','my_table')作为database_name,from table_a a inner join table_b b on b.id=a.id inner join database_name c on a.id2=c.id;
基本上,database_name的值取自现有查询,并且将在同一查询中使用。
有没有可能在不使用存储过程的情况下执行这样的操作?如果不是,在Java有没有可能做到这一点,而不使用循环?
在一个查询中不可能做到这一点。不过,它不需要存储过程。
查询中的标识符不能是变量;MySQL需要实际知道对象的名称(表、列、函数等)提交SQL文本时;标识符不能在执行时改变。
这不需要存储过程,但需要两个单独的SELECT语句。一个选择检索数据库标识符。并且从中得到的值可用于为提交到数据库的另一个SELECT生成包含SQL文本的字符串。