如何限制 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 查询的主要内容,如果未能解决你的问题,请参考以下文章