sid_com
sid_com

Reputation: 25117

MySQL: sort order "SHOW TABLES"

How are the tables ordered returned by "SHOW TABLES"?

For example the output for the information_schema database looks like this:

CHARACTER_SETS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
COLUMN_PRIVILEGES
ENGINES
EVENTS
FILES
GLOBAL_STATUS
GLOBAL_VARIABLES
KEY_COLUMN_USAGE
PARAMETERS
PARTITIONS
PLUGINS
PROCESSLIST
PROFILING
REFERENTIAL_CONSTRAINTS
ROUTINES
SCHEMATA
SCHEMA_PRIVILEGES
SESSION_STATUS
SESSION_VARIABLES
STATISTICS
TABLES
TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
USER_PRIVILEGES
VIEWS
INNODB_CMP_RESET
INNODB_TRX
INNODB_CMPMEM_RESET
INNODB_LOCK_WAITS
INNODB_CMPMEM
INNODB_CMP
INNODB_LOCKS

Upvotes: 6

Views: 6211

Answers (3)

Tarik
Tarik

Reputation: 4546

The below code works pretty well for me to list specific tables on any of my database and sort them by their name as asked.

SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_here' AND TABLE_NAME LIKE '%letters_from_your_table_here%' ORDER BY TABLE_NAME DESC

Upvotes: 0

dan
dan

Reputation: 13272

See Sergei Golubchik's answer from SHOW DATABASES does not order infomation_schema correct: "no SHOW command sorts the result".

If you need the tables names sorted you can query information_schema.tables, something like:

select table_name from information_schema.tables 
 where table_schema = 'your_db_name' order by table_name;

Upvotes: 9

Saharsh Shah
Saharsh Shah

Reputation: 29051

Try this:

SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'information_schema' ORDER BY TABLE_NAME 

Upvotes: 0

Related Questions