Có thể tìm số hàng trong bảng:
select count(*) from tablename
Có thể tìm số cột trong bảng không?
Có thể tìm số hàng trong bảng:
select count(*) from tablename
Có thể tìm số cột trong bảng không?
Câu trả lời:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_catalog = 'database_name' -- the database
AND table_name = 'table_name'
database
là tương đương với một schema
trong ANSI SQL và table_catalog
luôn luôn làdef
SELECT COUNT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_CATALOG = 'Database name'
AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table name'
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'Your_table_name';
Lưu ý: Your_table_name nên được thay thế bằng tên bảng thực của bạn
Sử dụng JDBC trong Java:
String quer="SELECT * FROM sample2";
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(quer);
ResultSetMetaData rsmd = rs.getMetaData();
int NumOfCol=0;
NumOfCol=rsmd.getColumnCount();
System.out.println("Query Executed!! No of Colm="+NumOfCol);
SELECT * FROM sample2 WHERE 1=2
. Bằng cách này, bạn có thể nhận được lược đồ nhưng không có dữ liệu, điều này có thể thêm chi phí không cần thiết.
Đã hơi muộn nhưng xin hãy lấy nó khỏi tay tôi ...
Trong trình soạn thảo (Truy vấn mới) bằng cách chọn đối tượng cơ sở dữ liệu, nó cũng có thể là một bảng, nếu chúng ta sử dụng Phím tắt Alt + F1, chúng ta sẽ nhận được tất cả thông tin của đối tượng và tôi nghĩ sẽ giải quyết được vấn đề của bạn.
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"
Tôi đã thử câu trả lời của Nathan Koop và nó không hiệu quả với tôi. Tôi đã thay đổi nó thành như sau và nó đã hoạt động:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'
Nó cũng không hoạt động nếu tôi đặt USE 'database_name'
cũng không WHERE table_catalog = 'database_name' AND table_name' = 'table_name'
. Tôi thực sự sẽ rất vui khi biết tại sao.
database_name
đặt cơ sở dữ liệu mặc định để bạn không cần đặt tên bảng đủ điều kiện trong bất kỳ câu lệnh nào bạn đưa ra. Ở đây, bạn đủ điều kiện cho columns
tên bảng bằng cách nói rằng nó nằm trong information_schema. table_catalog
tồn tại trong mysql hoàn toàn với mục đích tương thích với các dbs khác, nó không giống như table_schema
- xem các nhận xét dưới câu trả lời đó.
Hoặc sử dụng sys.columns
--SQL 2005
SELECT *
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'spt_values'
-- returns 6 rows = 6 columns
--SQL 2000
SELECT *
FROM syscolumns
WHERE OBJECT_NAME(id) = 'spt_values'
-- returns 6 rows = 6 columns
SELECT *
FROM dbo.spt_values
-- 6 columns indeed
Có thể tìm số cột trong bảng chỉ bằng cách sử dụng 3 dòng mã PHP đơn giản.
$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);
$num=mysqli_num_fields($query);
$num
sẽ trả về số columns
trên một bảng nhất định trong trường hợp này.
Hy vọng rằng nó sẽ giúp ích cho những người khác.
Truy vấn đếm số cột trong bảng:
select count(*) from user_tab_columns where table_name = 'tablename';
Thay thế tên bảng bằng tên của bảng có tổng số cột bạn muốn trả về.
Có thể sử dụng câu lệnh sql sau:
select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name')
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'table_name';
db2 'describe table "SCHEMA_NAME"."TBL_NAME"'
Truy vấn sau tìm cách các cột trong bảng: -
SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TableName';
Một câu trả lời MySQL được điều chỉnh một chút từ ví dụ MSDN cho MySqlDataReader.GetValues :
//assumes you've already created a connection, opened it,
//and executed a query to a reader
while(reader.Read())
{
Object[] values = new Object[reader.FieldCount];
int fieldCount = reader.GetValues(values);
Console.WriteLine("\nreader.GetValues retrieved {0} columns.", fieldCount);
for (int i = 0; i < fieldCount; i++)
Console.WriteLine(values[i]);
}
Việc sử dụng MySqlDataReader.FieldCount
sẽ cho phép bạn truy xuất số cột trong hàng mà bạn đã truy vấn.
Vì tất cả các câu trả lời đều đang sử dụng COUNT()
, bạn cũng có thể sử dụng MAX()
để lấy số cột trong một bảng cụ thể như
SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
AND
TABLE_SCHEMA = 'YourSchemaNameHere'
AND
TABLE_NAME = 'YourTableNameHere';
Đây là cách bạn có thể lấy một số cột bảng bằng cách sử dụng Python 3, sqlite3 và câu lệnh pragma:
con = sqlite3.connect(":memory:")
con.execute("CREATE TABLE tablename (d1 VARCHAR, d2 VARCHAR)")
cur = con.cursor()
cur.execute("PRAGMA table_info(tablename)")
print(len(cur.fetchall()))