2014-02-14 30 views
17

我試圖找出表中一列的確切大小。 PHPMyAdmin不顯示列的大小,只顯示錶格。如何獲取mysql表中列的大小

任何方式我可以得到列的大小?

Thankyou

+0

也許你的意思是「只有行」 –

回答

15
SELECT column_name, 
     character_maximum_length 
FROM information_schema.columns 
WHERE table_schema = Database() 
     AND -- name of your database 
     table_name = 'turno' 
     AND -- name of your table 
     column_name = 'nombreTurno' -- name of the column 

INFORMATION_SCHEMA.COLUMNS

如果你想整個表格的大小,然後用這個

SELECT table_name             AS "Tables", 
     Round(((data_length + index_length)/1024/1024), 2) "Size in MB" 
FROM information_schema.tables 
WHERE table_schema = "$db_name" 
ORDER BY (data_length + index_length) DESC; 

編輯

SELECT column_name, 
     character_maximum_length 
FROM information_schema.columns 
WHERE table_schema = 'websi_db1' 
     AND table_name = 'thread' 
     AND column_name = 'title' 

Source

+0

謝謝你的迴應!我是SQL新手,所以我不確定是否將數據庫名稱放在正確的位置。這看起來正確嗎? 選擇COLUMN_NAME,從INFORMATION_SCHEMA.COLUMNS CHARACTER_MAXIMUM_LENGTH 其中TABLE_SCHEMA =數據庫(websi_db1)和 TABLE_NAME = '線' AND COLUMN_NAME = '標題' – user1446650

+0

我與我的答案更新。你能檢查我的答案嗎?如果有幫助,請標記爲有用 –

+1

感謝您的回覆。但是,它返回了列可以具有的最大內容長度。我正在查找整個列的大小(表格中特定列中的所有行)。 – user1446650

14

如果你想找出列從表= TABLE_NAME大小= COLUMN_NAME,你總是可以運行這樣的查詢:

SELECT sum(char_length(COLUMN_NAME)) 
FROM TABLE_NAME; 

返回的大小以字節爲單位。如果你想在KB,你可以只用1024除以它,就像這樣:

SELECT sum(char_length(COLUMN_NAME))/1024 
FROM TABLE_NAME; 
+0

這當然幫了我。我還發現通過刪除查詢的'sum'部分產生完全相同的結果。 SELECT CHAR_length(COLUMN_NAME)FROM TABLE_NAME; –

3

如果從腳本這樣做,你可以運行這個你已經建立了連接後(因此數據庫已選擇):

SELECT character_maximum_length 
FROM information_schema.columns 
WHERE table_name = ? AND column_name = ? 

分別將您的表名和列名替換爲?。

相關問題