我正試圖搜索表中可能包含在表中的一個條目。循環遍歷表名稱來搜索數據
例如,我有3個名爲table1,table2和table3的表。每個表格都包含相同的字段:標識,名稱,車輛。只是說我想找到2個表格中存在的名稱,我該如何去做呢?表的數量是動態的,但我已經可以通過查詢獲得它們。
代碼來獲取表名
$retrievequery = "SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'bargebooking'
AND table_name NOT LIKE 'slots%'
AND table_name NOT LIKE 'accounts%';";
$result = mysqli_query($conn,$retrievequery);
$count = mysqli_num_rows($result);
while($data = mysqli_fetch_array($result))
{
$row[] = $data[0];
}
該代碼存儲表名到一個數組
代碼通過表格的名稱
for($i=0;$i<count($row);$i++)
{
$curr_table = $row[$i];
$searchquery = "SELECT * FROM `$curr_table` where name='second'";
$result = mysqli_query($conn,$searchquery);
while($row = mysqli_fetch_array($result))
{
echo $row['id'];
}
}
搜索這是我的嘗試。到目前爲止,如果我刪除where子句,它將打印出所有的id,但僅限於一個表格(第一個)。
如果您不明白,我想查找可能存在於多個表中的數據並將其列出。 我希望我能得到一些幫助。
如果你有三個結構相同的表,其中唯一的區別是在表名一個數字,那麼你構建你數據庫嚴重不足....有__one__表,並有一個附加的「tid」數字列,所有內容都會更加容易 –
將所有3個表的結果聯合在一個子查詢中,然後從內聯視圖中選擇。儘管我同意Mark的觀點,但我在這裏質疑表格設計。 'select * from(select * from table1 union all select * from table2 union all select * from table3)subqry where col ='desiredvalue'' – xQbert
模式不僅限於您所知道的設計標準... – Flosculus