【问题标题】:How to apply pagination to the result of SHOW TABLES query in PHP如何在 PHP 中对 SHOW TABLES 查询的结果应用分页
【发布时间】:2012-04-04 16:37:23
【问题描述】:

我想对SHOW TABLES FROM DATABASE_NAME的结果应用分页。

尝试使用 LIMIT 关键字但抛出错误。

分页是指查询返回的结果(表格)将显示在多个页面上。

【问题讨论】:

  • 您可以在您的代码中执行此操作,第一页显示从第一个结果到您要显示的结果数。对于第二个,从结果显示#( number of results per page * 1 ),直到( number of results per page * 1 ) + results per page,依此类推,只需将1替换为从零开始计数的当前页数(第一页为0,第二页为1,等)。

标签: php mysql pagination


【解决方案1】:

mysql> pager less;

mysql> show tables;

【讨论】:

  • 太棒了
  • 正是我想要的。非常感谢。
  • 请注意,less 必须已经在系统的命令行上运行。对于没有在他们的系统上安装less 的人,more 也可以工作。甚至可以在 Windows 上运行,但在某些 linux 发行版中默认不安装 less,尤其是在 docker 容器(或任何类型的容器)中进行故障排除时。
【解决方案2】:

您可以使用不同的查询来代替(实现表的名称),例如:

    SELECT TABLE_NAME FROM information_schema.TABLES 
WHERE `TABLE_SCHEMA` = 'my_db_name' LIMIT 10

【讨论】:

  • 还有一件事..您能否修改查询以再返回一列“表号”。 ??
  • SET @rank= 0; SELECT @rank:=@rank+1 AS rank,TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'my_db_name' LIMIT 10
  • 这是你想要的吗?行号
  • 是的,我想要行号。 :D 但上面的查询将每个表的排名返回为 null :(
  • 你是明星!谢谢
【解决方案3】:

你可以试试关注

1)

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'database_name' 
AND TABLE_NAME LIKE "a%" 
LIMIT 0,20;

2)

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'database_name'  
LIMIT 0,50;

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 2011-10-06
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2019-12-23
    • 2014-09-25
    相关资源
    最近更新 更多