เป็นไปได้ที่จะค้นหาจำนวนแถวในตาราง:
select count(*) from tablename
เป็นไปได้ไหมที่จะหาจำนวนคอลัมน์ในตาราง
เป็นไปได้ที่จะค้นหาจำนวนแถวในตาราง:
select count(*) from tablename
เป็นไปได้ไหมที่จะหาจำนวนคอลัมน์ในตาราง
คำตอบ:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_catalog = 'database_name' -- the database
AND table_name = 'table_name'
database
เทียบเท่ากับschema
ANSI SQL และtable_catalog
เสมอ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';
หมายเหตุ: Your_table_name ควรถูกแทนที่ด้วยชื่อตารางจริงของคุณ
การใช้ JDBC ใน 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
เท่านั้น ด้วยวิธีนี้คุณจะได้รับสคีมา แต่ไม่มีข้อมูลซึ่งสามารถเพิ่มค่าโสหุ้ยที่ไม่จำเป็นได้
มันสายไปหน่อย แต่ช่วยเอาไปจากฉัน ...
ในตัวแก้ไข (แบบสอบถามใหม่) โดยเลือกวัตถุฐานข้อมูลอาจเป็นตารางได้เช่นกันถ้าเราใช้ปุ่มลัดAlt + F1เราจะได้รับข้อมูลทั้งหมดของวัตถุและฉันคิดว่าจะแก้ปัญหาของคุณได้เช่นกัน
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"
ฉันลองคำตอบของ Nathan Koop แล้ว แต่มันก็ไม่ได้ผลสำหรับฉัน ฉันเปลี่ยนเป็นดังต่อไปนี้และใช้งานได้:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'
มันก็ไม่ได้ผลเช่นกันถ้าฉันใส่USE 'database_name'
หรือWHERE table_catalog = 'database_name' AND table_name' = 'table_name'
ไม่ ฉันยินดีที่จะรู้ว่าทำไม
database_name
ตั้งค่าฐานข้อมูลเริ่มต้นดังนั้นคุณจึงไม่จำเป็นต้องกำหนดชื่อตารางในคำสั่งใด ๆ ที่คุณออก ที่นี่คุณมีคุณสมบัติเหมาะสมกับcolumns
ชื่อตารางโดยระบุว่าอยู่ใน information_schema table_catalog
มีอยู่ใน mysql โดยมีวัตถุประสงค์เพื่อให้เข้ากันได้กับ dbs อื่น ๆ ซึ่งไม่เหมือนกับtable_schema
- ดูความคิดเห็นใต้คำตอบนั้น
หรือใช้ 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
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table_name'
เป็นไปได้ที่จะค้นหาจำนวนคอลัมน์ในตารางโดยใช้โค้ด PHP ง่ายๆ 3 บรรทัด
$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);
$num=mysqli_num_fields($query);
$num
จะส่งคืนจำนวนcolumns
บนตารางที่กำหนดในกรณีนี้
หวังว่ามันจะช่วยคนอื่น ๆ
แบบสอบถามเพื่อนับจำนวนคอลัมน์ในตาราง:
select count(*) from user_tab_columns where table_name = 'tablename';
แทนที่ชื่อตารางด้วยชื่อของตารางที่มีจำนวนคอลัมน์ทั้งหมดที่คุณต้องการส่งคืน
สามารถใช้คำสั่ง sql ต่อไปนี้:
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"'
แบบสอบถามต่อไปนี้พบว่าคอลัมน์ในตารางเป็นอย่างไร: -
SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TableName';
คำตอบ MySQL ดัดแปลงเล็กน้อยจากตัวอย่าง MSDN สำหรับ 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]);
}
การใช้MySqlDataReader.FieldCount
จะช่วยให้คุณสามารถดึงข้อมูลจำนวนคอลัมน์ในแถวที่คุณสืบค้นได้
SELECT TABLE_SCHEMA
, TABLE_NAME
, number = COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;
อันนี้ใช้ได้ผลสำหรับฉัน
เนื่องจากมีการใช้คำตอบทั้งหมดCOUNT()
คุณจึงสามารถใช้MAX()
เพื่อรับจำนวนคอลัมน์ในตารางเฉพาะได้เช่นกัน
SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
AND
TABLE_SCHEMA = 'YourSchemaNameHere'
AND
TABLE_NAME = 'YourTableNameHere';
นี่คือวิธีที่คุณจะได้รับจำนวนคอลัมน์ตารางโดยใช้คำสั่ง Python 3, sqlite3 และ 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()))