如何限制 SHOW TABLES 查询

Posted

技术标签:

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

我有以下疑问:

SHOW TABLES LIKE '$prefix%'

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

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

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

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

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

【问题讨论】:

试试***.com/questions/9782948/… 【参考方案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 之类的东西了……

【讨论】:

以上是关于如何限制 SHOW TABLES 查询的主要内容,如果未能解决你的问题,请参考以下文章

erlang 笔记(06/03/02)

如何使用 IPTables 限制Ip访问

ACCESS中类型操作(限制转换)

如何按日期限制查询

如何限制 HDF5 上 Pandas 查询的大小,使其不超过 RAM 限制?

HDOJ-1050-Moving Tables(nyoj220)