0

我有一个表列中的值列表,我需要与表名进行匹配,最好只使用 SQL 语句。

如果值是静态的,我想 SELECT 语句将是这样的:

SELECT table_name FROM information_schema.TABLES WHERE 
match(table_name) against('124512' +'36326' +'23636' IN BOOLEAN MODE)

但是,我需要匹配来自 SELECT 语句的动态值:

SELECT tableid FROM databaseName.tableOverviewTableName 
WHERE template = 'templateName')

上面的tableid包含在我想要的表的table_name中。

这可以通过 SQL 语句实现吗?

4

1 回答 1

0

您可以通过 Prepared 语句执行此操作(而不是直接通过查询)

SET @tq = (SELECT tableid FROM databaseName.tableOverviewTableName WHERE template = 'templateName'));
SET @stmq = CONCAT('SELECT * FROM ', @tq);
Prepare stmt FROM @stmq;
Execute stmt;
DEALLOCATE PREPARE stmt;
于 2014-11-20T13:29:04.633 回答