MySQL:与动态值匹配
我在表列中有一个值列表,需要与表名进行匹配,最好只使用SQL语句 如果这些值是静态的,我想SELECT语句应该是这样的:MySQL:与动态值匹配,mysql,select,string-matching,match-against,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.table
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_名称中
这可以通过SQL语句实现吗?您可以通过预处理语句而不是直接通过查询来实现
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;
也许我做错了什么,但是当我尝试运行上面的代码时,我得到了错误消息1242-子查询在SET@tq上返回了不止一行。。。。此外,我需要匹配表达式中所选的数字。