2016-10-21 1 views
0

このコマンドで列テーブルの情報を取得できますが、列Length/Valuesが返されません。mySql列の長さ/値を取得するにはどうすればいいですか

SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tableName' 
+0

私はあなたがここで欲しいものを理解するのが難しいと思っています。 information_schema.columns column_typeフィールドは、その列に保持できる最大長を含む列属性を示します。しかし、実際の最大長を知りたい場合は、テーブルのデータを参照する必要があります。表のすべての値と、各列の長さと、information_schema.columnsの列の説明を含めますか? –

+0

@ P.Salmonはい、この投稿によって解決された問題http://stackoverflow.com/a/40175051/6599627 –

答えて

0

SQLにはLEN()関数があります。これはあなたにフィールドの長さを与えます。ただし、更新することは解決策になる:

+0

エラーが表示されたら、完全なコマンドを貼り付けることができますか?ありがとう –

+0

"..."でスペースを使用できません申し訳ありませんこれは動作するはずです: Column_LengthとしてLEN(COLUMN_NAME)、DATA_TYPE、LEN(DATA_TYPE)をData_LengthとしてSELECT COLUMN_NAME、LEN(COLUMN_NAME)where INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tableName ' –

+0

残念ながら、私はこのエラーを受け取ります: '#1305 - FUNCTION information_schema.LEN does not exist' –

0

を助け

SELECT CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'Database' AND TABLE_NAME = 'Table' AND COLUMN_NAME = 'Field' 

を更新し

希望COLUMN_TYPEは、あなたが探しているものであるかどうかを確認してください。

SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tableName'; 

また、あなたはINFORMATION_SCHEMA.COLUMNSあなたに役に立つかもしれないテーブルやクエリのデータのすべての列を参照することができます。

0

行う最も簡単な方法は、この例として、LEN()関数を使用している:

SELECT CustomerName,LEN(Address) as LengthOfAddress 
FROM Customers; 

だからあなたのコードのためには、次のようになります。

SELECT COLUMN_NAME, LEN(COLUMN_NAME) as NAME_LENGTH, 
DATA_TYPE, LEN(DATA_TYPE) as DATA_LENGTH 
FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tableName'; 

Hereあなたはより多くの情報を持っています!

関連する問題