49

例えば ​​:

tbl_ifo

id | name  | age | gender 
----------------------------
1  | John  |  15 |  Male
2  | Maria |  18 |  Female
3  | Steph |  19 |  Female
4  | Jay   |  21 |  Male

mysql を使用してこのテーブルの列をカウントするにはどうすればよいですか?

4

8 に答える 8

83
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'tbl_ifo'
于 2012-05-08T03:31:30.327 に答える
47

データベースの名前も指定する必要があると思います:

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'SchemaNameHere'
  AND table_name = 'TableNameHere'

データベースの名前を指定しない場合、テーブルの名前と一致する限り、すべての列がカウントされる可能性があります。たとえば、次の 2 つのDBaseA and DbaseBデータベースあるDBaseAます。では、 TabA( 4 fields )TabC(4 fields)という 2 つのテーブルがあります。DBaseB

このクエリを実行すると:

SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'TabA'

という名前のテーブルが 2 つあるため、7 が返されTabAます。しかし、別の条件を追加することによってtable_schema = 'SchemaNameHere':

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'DBaseA'
  AND table_name = 'TabA'

その場合、3 のみが返されます。

于 2012-05-08T03:39:08.087 に答える
4
$cs = mysql_query("describe tbl_info");
$column_count = mysql_num_rows($cs);

Or just:

$column_count = mysql_num_rows(mysql_query("describe tbl_info"));
于 2015-12-11T09:05:40.417 に答える
3

information_schema.columnsテーブルの列を正確に数えるには、目的のデータベース (スキーマ) 名とテーブル名を渡すことでフォームを取得できます。


次のコードを参照してください。

SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'myDB'  
AND table_name = 'table1';
于 2012-05-08T05:00:02.290 に答える
1

より一般的な答えがあります。しかし、DB 内のすべてのテーブルの列を数えるのに役立つと思います:

SELECT table_name, count(*)
FROM information_schema.columns
GROUP BY table_name;
于 2018-06-08T12:49:58.753 に答える
0

単純に mysql_fetch_assoc を使用し、count() 関数を使用して配列をカウントします。

于 2015-01-15T09:08:35.240 に答える