簡體   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