繁体   English   中英

如何在MySQL的“ FROM”子句上使用“ LIKE”功能

[英]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_%'

例如,LIKE通常用在FROM之后的WHERE子句中

SELECT * FROM table_name WHERE field LIKE 'value';

您还可以通过'='运算符比较数字或整数字段,以返回特定记录。

SELECT * FROM table_name WHERE id = 30;

如果要从另一个表的特定记录集中提取详细信息,则可以使用子查询方法,例如,请参考此链接

您也可以使用动态SQL查询。请参考此链接进行动态SQL查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM