在整个数据库中搜索列名

时间:2014-10-14 09:45:10

标签: mysql sql

如何在sqli中搜索整个数据库中的列名。

假设我们有160个包含许多列的表,我想在数据库中查找animals列。我该怎么做我在这里看到了几个例子,如果表名已知,他们主要搜索列名。但如果我不知道表本身怎么办???

table 1, table 2..... table 160 and i am looking for "animal" column in the whole database.

我试过,如果表已知其工作

SELECT * FROM TABLE_NAME WHERE COLUMN_NAME='animal'

2 个答案:

答案 0 :(得分:1)

查询

SELECT table_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name='animal';

Read about INFORMATION_SCHEMA here

答案 1 :(得分:0)

JDBC具有独立于供应商的解决方案:DatabaseMetaData.getColumns

public static void processColumn(Connection con, String column) throws SQLException {
    DatabaseMetaData metadata = con.getMetaData();
    String catalog = null;
    String schema = null;
    String table = null;
    String columnPattern = column;
    try (ResultSet rs = metadata.getColumns(catalog, schema, table, columnPattern)) {
        System.out.printf("Table %s%n", rs.getString("TABLE_NAME"));
    }
}

null用作通配符。