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

问题描述 投票:0回答:3

我知道如何在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。

谢谢!

mysql extraction
3个回答
0
投票

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


0
投票
SELECT * FROM schema_id.name LIMIT 3

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

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


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]是要转储的数据库的名称。

© www.soinside.com 2019 - 2024. All rights reserved.