[英]How to use “LIKE” function on “FROM” clause in MySQL
我正在尝试根据用户输入查询特定的表,并想查询包含该用户输入的表作为名称中的search_id。 例如,表名称的结构为run_000000_search_000000_lda_000000
,我想获取具有与它们放入的search_id相同的表。
我知道在Where子句上使用“ LIKE”时,您可以获得名称中包含特定字符串或int的列。 但是,我没有发现将其与“ FROM”子句一起使用。
针对search_id 50的特定硬编码查询
SELECT *
FROM `run_000044_search_000050_lda_000366`;
总之,如何获取与用户输入的表具有相同search_id的表。另外,尝试使用run和lda来形成完整的表名是行不通的,因为这三个名称之间没有明显的模式。
我也可以使用动态sql,但不确定如何执行。
在网上搜索后,我终于找到了解决方案。 infomation_schema.tables包含一列将是一个表名。 在这里,您可以查询表的全名,并在另一个查询中使用它。 我认为,完整的示例可以使您更容易理解:
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%_search_000050_lda_%';
SELECT * FROM INFROMATION_SCHEMA.TABLES
^选择表将包含所有表名和
WHERE TABLE_NAME LIKE '%_search_000050_lda_%';
^在所有表中搜索引号中的内容。 用表所需的Like语句替换'%_seach_000050_lda_%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.