2011-06-29 67 views
11

Có cách nào để sắp xếp danh sách các bảng được trả về bởi lệnh 'show tables' của mysql không?Các bảng hiển thị mysql sắp xếp theo tên bảng

mysql> show tables; 

Tôi muốn sắp xếp theo thứ tự bảng chữ cái theo tên bảng.

EDIT:

Như được chỉ ra bởi một trong các câu trả lời, chúng đã được sắp xếp theo thứ tự bảng chữ cái. Tuy nhiên, A! = A. Có cách nào để bỏ qua trường hợp trong sắp xếp không?

+0

Trùng lặp: [PHP MYSQL: cách liệt kê bảng theo thứ tự tăng dần] (http://stackoverflow.com/questions/6076886/php-mysql-way-to-list-table-in-ascending-order) – Orbling

Trả lời

24

Query information_schema và thay thế database_name với tên của cơ sở dữ liệu bạn muốn quay trở lại các bảng từ

SELECT table_name, engine 
FROM information_schema.tables  
WHERE table_type = 'BASE TABLE' AND table_schema='database_name' 
ORDER BY table_name ASC; 
5

Chúng đã được sắp xếp theo thứ tự bảng chữ cái!

0
SELECT CONCAT(`table_name`, '') 
FROM information_schema.tables  
order by 1 asc 

Tất cả bạn cần, chỉ cần chuyển đổi table_name để loại varchar thường xuyên. Và sau đó đặt nó như chuỗi thông thường.

+0

Tại sao chúng ta cần điều này? Loại 'TABLE_NAME', số là gì? –

+0

Kính trọng [tài liệu] này (http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html) theo cách phân biệt chữ hoa chữ thường chỉ hoạt động với các đối chiếu latin1 và latin1_swedish_ci. Nhưng 'table_name' là utf8_general_ci \t đối chiếu. Có lẽ nó là một trường hợp nhạy cảm. – Vagif

0

Hãy thử cái này và thay thế tên cơ sở dữ liệu cho phù hợp.

SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_schema = 'database_name' ORDER BY table_name ASC;

Các vấn đề liên quan