是否可以在MySql中执行以下操作:
从table_a选择*,CONCAT(schema_name,'。','my_table')作为数据库名称
b.id = a.id上的内部联接table_b b
内部连接a_id2 = c.id上的database_name c;
基本上,database_name的值取自现有查询,并且还将在同一查询中使用。
是否可以在不使用存储过程的情况下做类似的事情?
如果没有,是否可以在Java中不使用循环来执行此操作?
最佳答案
不可能在单个查询中执行此操作。不过,它不需要存储的proc。
查询中的标识符不能是可变的。提交SQL文本时,MySQL实际上需要知道对象的名称(表,列,函数等)。标识符在执行时不能改变。
这不需要存储的proc,但是确实需要两个单独的SELECT语句。一个SELECT检索数据库标识符。并且从中获得的值可用于制定一个字符串,该字符串包含要提交给数据库的另一个SELECT的SQL文本。