Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:与动态值匹配_Mysql_Select_String Matching_Match Against - Fatal编程技术网

MySQL:与动态值匹配

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

我在表列中有一个值列表,需要与表名进行匹配,最好只使用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_名称中


这可以通过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上返回了不止一行。。。。此外,我需要匹配表达式中所选的数字。