如何在MySQL中查找所有包含特定列名的表?

1037

我有2-3个不同的列名,希望在整个数据库中查找并列出拥有这些列的所有表。是否有简单的脚本可用?


1
请参考此链接:http://winashwin.wordpress.com/2012/08/28/mysql-search/ - user1573308
11个回答

3
使用information_schema会非常慢,所以更快的方法是使用SHOW命令。选择数据库后,首先发送SHOW TABLES查询,然后对每个表执行SHOW COLUMNS查询。在PHP中,代码如下:
    $res = mysqli_query("SHOW TABLES");
    while($row = mysqli_fetch_array($res))
    {   $rs2 = mysqli_query("SHOW COLUMNS FROM ".$row[0]);
        while($rw2 = mysqli_fetch_array($rs2))
        {   if($rw2[0] == $target)
               ....
        }
    }

你能量化“非常慢”吗?请通过编辑(更改)您的答案来回复,而不是在评论中回复(不要包含“编辑:”,“更新:”或类似内容 - 答案应该看起来像今天写的)。 - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接