如何在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'
答案 0 :(得分:1)
SELECT table_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name='animal';
答案 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
用作通配符。