使用awk从未知数据库表中选择所有用户

时间:2019-07-24 16:17:53

标签: mysql bash

我试图使用以下命令从一个表中选择所有用户,在该表中,我只知道名称以“ _users”结尾:

X = ($(awk -F\' '/DB/ {print $4}' wp-config.php)); mysql -u ${X[1]} -n ${X[0]} -p${X[2]} -e " select * from %_users;"

我不确定命令有什么问题,将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您不知道表名,则可以查询 INFORMATION_SCHEMA 以提供表名。例如:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE LOWER(TABLE_NAME) LIKE '%_users';

然后使用结果集查询所有表。

答案 1 :(得分:0)

SQL在表名(或其他标识符)中不支持通配符。在准备查询时,表名必须是固定的。

您无法从“以_users结尾的未知表”中进行查询。您必须弄清楚实际的表名是什么。

这与任何其他编程语言都没有什么不同。例如,如果您不知道函数的名称,就不能按名称调用该函数。

使用模式匹配谓词LIKE时,“%”通配符用于字符串。您不能when you don't know what to do随便使用它。