根据列号

时间:2015-10-01 07:11:46

标签: php mysql

table1有6列

table2有8列

table3有10列

table4有12列

所有表都有一个共同的名称,比如pid。 我想在PHP中进行查询,如果在table1中找到pid,则将数据发送到PHP查询,或者在table2中搜索,或者如果没有找到,则在table3中搜索,或者在table4中搜索。

有什么办法可以根据列号进行区分,在使用PHP进行查询之前要搜索哪个表。

2 个答案:

答案 0 :(得分:1)

由于您没有附加代码,因此这里提到了逻辑解决方案。 您可以通过检查列是否存在然后搜索

来继续

首先,您必须将数组中的所有表名称作为

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

获得的内容

答案 1 :(得分:0)

如果您对integer值有疑问。然后你可以保持Range table。它仅存储{1}},例如table1及其table nameminimum key value。如果对该整数值有任何查询,那么我们可以使用maximum key value找到该记录所属的表名,并从目标表中获取它,如table1。 range table很小,它有5-6条记录,因为你说的时间非常少。现在转到目的地表并查找数据。

警告:这种方法有自己的优点和缺点。利弊。我只是分享我的观点