【问题标题】:How to limit SHOW TABLES query如何限制 SHOW TABLES 查询
【发布时间】:2012-07-23 01:27:10
【问题描述】:

我有以下疑问:

SHOW TABLES LIKE '$prefix%'

虽然我需要对结果进行分页,但它完全按照我想要的方式工作。我试过了:

SHOW TABLES LIKE '$prefix%' ORDER BY Comment ASC LIMIT 0, 6

我需要它返回所有带有特定前缀的表,并按注释对它们进行排序。我想通过 LIMIT 进行分页,每页 6 个结果。

我显然做错了什么。这如何实现?

编辑:我确实看过this。它对我不起作用。

【问题讨论】:

标签: php mysql pagination information-schema


【解决方案1】:

以上不能直接通过 MySQL Syntax 完成。 MySQL 不支持某些 SHOW 语句上的 LIMIT 子句。这是其中之一。 MySQL Reference Doc.

如果您的 MySQL 用户有权访问 INFORMATION_SCHEMA 数据库,则以下内容将起作用。

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DATABASE_TO SEARCH_HERE' AND TABLE_NAME LIKE "table_here%"  LIMIT 0,5;

【讨论】:

  • 但是如果按前缀过滤,我该如何过滤。 LIKE 子句不起作用。
  • SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'table%' LIMIT 0,5 工作
  • 谢谢。但这是从以该前缀开头的数据库返回的结果。不是表格。
  • 我很抱歉。试试这个:SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DATABASE_HERE' AND TABLE_NAME LIKE "table_here%" LIMIT 0,5;
【解决方案2】:

只需通过标准查询而不是使用 SHOW TABLES 进行选择。例如

select table_name from information_schema.tables

然后你就可以使用 ASC 和 LIMIT 之类的东西了……

【讨论】:

    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 2019-03-22
    • 2012-04-04
    • 2021-08-07
    • 2012-02-25
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多