如何使用MySQL从数据库的所有表中提取前几行?

时间:2019-02-20 22:50:14

标签: mysql extraction

我知道如何在mysql中一次查询出表的前几行。但是我有一个包含50多个表的数据库,因此任务变得繁琐。我想知道是否有一种方法可以一次检索全部?

我知道在sql server中我们可以使用它:

DECLARE @sql VARCHAR(MAX)='';
SELECT @sql=@sql+'SELECT TOP 3 * FROM '+'['+SCHEMA_NAME(schema_id)+'].['+name+']'+';'
  FROM sys.tables
EXEC(@sql);

但是我不知道如何使用mySQL。

谢谢!

3 个答案:

答案 0 :(得分:0)

SELECT * FROM [tbl] LIMIT 3。虽然SQL标准可以自由选择任何3行,但前3行是对单个表选择的通常实现。

答案 1 :(得分:0)

SELECT * FROM schema_id.name LIMIT 3

假设, schema_id 是您的架构名称,名称是您的表名称。 它返回前三行。

根据条件,您可以选择MAX()或其他聚合函数以使其返回特定行。

答案 2 :(得分:0)

这当然不是仅MySQL的答案,但是由于我最近需要完成OP想要的操作,而且我看不到其他答案,所以这里是 a 解决方案。

mysql [args] -s -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='[your_db]'" | xargs -I{} mysql [args] -e "USE [your_db]; SELECT * FROM {} LIMIT 3"

[args]是用于MySQL命令行(主机和端口等)的参数,而[your_db]是要转储的数据库的名称。