MySQL:匹配动态值

时间:2014-11-20 13:18:26

标签: mysql select string-matching match-against

我在表列中有一个值列表,我需要匹配表名,最好只使用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语句实现吗?

1 个答案:

答案 0 :(得分: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;