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

时间:2019-07-01 16:23:31

标签: mysql sql django

我正在尝试根据用户输入查询特定表,并想查询包含该用户输入作为名称中的search_id的表。例如,表名称的结构为run_000000_search_000000_lda_000000,而我想获得与它们放入的表具有相同search_id的表。

我知道在Where子句上使用“ LIKE”时,您可以获得名称中包含特定字符串或整数的列。但是,我没有发现将其与“ FROM”子句一起使用。

针对search_id 50的特定硬编码查询

SELECT *
FROM `run_000044_search_000050_lda_000366`;

总而言之,我如何获得与用户放入的表具有相同search_id的表。另外,尝试使用run和lda来形成完整的表名也是行不通的,因为两者之间没有明显的模式这三个名字。

我也可以使用动态sql,但不确定如何做。

2 个答案:

答案 0 :(得分:1)

在线搜索后,我终于找到了解决方案。 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 _%'

答案 1 :(得分:0)

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

SELECT * FROM table_name WHERE field LIKE 'value';

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

SELECT * FROM table_name WHERE id = 30;

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

您还可以使用动态SQL查询。对于动态SQL查询,请参考此link