是否可以在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文本。

07-24 09:50
查看更多