เป็นไปได้ที่จะค้นหาจำนวนแถวในตาราง:
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เทียบเท่ากับschemaANSI 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()))