2012-07-24 41 views
6

我有以下查詢:如何限制SHOW TABLES查詢

SHOW TABLES LIKE '$prefix%' 

它的工作原理究竟如何我想它,但我需要的結果的頁碼。我嘗試過:

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

我需要它返回所有的表與一個特定的前綴,並通過他們的評論來排序。我想通過LIMIT進行分頁,每頁有6個結果。

我明顯在做一些非常錯誤的事情。這如何實現?編輯:我看過this。它不適合我。

+0

嘗試http://stackoverflow.com/questions/9782948/how-to-apply-pagination-to-the -result-of-show-tables-query-in-php/16807952#16807952 – Muk 2013-05-29 07:35:55

回答

8

以上不能通過MySQL語法直接完成。 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; 
+0

但是,我如何過濾前綴。 LIKE子句不起作用。 – Jaxkr 2012-07-24 17:12:12

+2

'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE'table%'LIMIT 0,5' works – 2012-07-24 17:13:15

+0

謝謝。但是,這是從以該前綴開始的數據庫返回結果。不是表格。 – Jaxkr 2012-07-24 17:15:21

1

只需通過標準查詢來選擇而不是使用SHOW TABLES。例如

select table_name from information_schema.tables 

然後你可以使用的東西,如ASC和LIMIT,等...