[英]Search in multiple table based on column numbers
table1有6列
table2有8列 table3有10列 table4有12列所有表都有一個通用名稱,例如pid。 我想在PHP中進行查詢,如果在表1中找到pid,則將其發送到PHP查詢,或者在表2中進行搜索,或者如果找不到,則在表3中或在表4中進行下一步搜索。
有什么我可以根據列號預先區分的方法,在PHP中進行查詢之前要搜索哪個表。
由於您沒有附加代碼,因此這里提到了邏輯解決方案。 您可以檢查列是否存在,然后在其中搜索
首先,您必須將array中的所有表名獲取為
SHOW TABLES FROM db_name
現在進行foreach循環,如果count> 0則中斷
SELECT count(*) as c,TABLE_NAME as tn
FROM information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'db_name' // your db name
AND TABLE_NAME = 'table_name' // from loop get it
AND COLUMN_NAME = 'pid' // column name
Now check c in php if >0 return tn and then break
最后在表中進行搜索查詢,您從tn得到什么
如果查詢integer
數值。 然后,您可以為此維護一個Range table
。 它僅存儲table name
如table1)及其minimum key value
和maximum key value
。 如果對該整數值有任何查詢,那么我們可以通過使用range table
找到該記錄所屬的表名,並從諸如table1的目標表中獲取它。 Range table
很小,正如您所說的,它有5-6條記錄,因此花費的時間更少。 現在轉到目標表並查找數據。
注意:此方法各有利弊。 我只是在分享我的觀點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.