如何限制 SHOW TABLES 查询

14

我有以下查询:

SHOW TABLES LIKE '$prefix%'

它完全按照我的预期工作,但我需要对结果进行分页。 我尝试过:

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

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

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

编辑:我查看了这个,但对我没用。


请尝试访问以下链接:https://dev59.com/cGkw5IYBdhLWcg3wlroa#16807952 - Mukesh
2个回答

16

无法直接使用MySQL语法实现上述操作。MySQL不支持在某些SHOW语句中使用LIMIT子句,此为其中之一。MySQL参考文档。

如果您的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子句不起作用。 - Jaxkr
2
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'table%' LIMIT 0,5 可行。 - Mike Mackintosh
谢谢你。但是这只返回以该前缀开头的数据库结果,而不是具有该前缀的表格。 - Jaxkr
1
抱歉。请尝试以下代码:SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DATABASE_HERE' AND TABLE_NAME LIKE "table_here%" LIMIT 0,5; - Mike Mackintosh

3

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

select table_name from information_schema.tables

然后你可以使用 ASC 和 LIMIT 等内容...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接