Например:
tbl_ifo
id | name | age | gender
----------------------------
1 | John | 15 | Male
2 | Maria | 18 | Female
3 | Steph | 19 | Female
4 | Jay | 21 | Male
Как подсчитать столбцы этой таблицы с помощью mysql?
Например:
tbl_ifo
id | name | age | gender
----------------------------
1 | John | 15 | Male
2 | Maria | 18 | Female
3 | Steph | 19 | Female
4 | Jay | 21 | Male
Как подсчитать столбцы этой таблицы с помощью mysql?
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'tbl_ifo'
Я думаю, вам нужно также указать имя базы данных:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'SchemaNameHere'
AND table_name = 'TableNameHere'
если вы не укажете имя своей базы данных, возможно, он будет считать все столбцы, если он совпадает с именем вашей таблицы. Например, у вас есть две базы данных: DBaseA and DbaseB
, In DBaseA
, она имеет две таблицы: TabA (3 поля), TabB (4 поля). И в DBaseB
он снова имеет две таблицы: TabA ( 4 поля), TabC (4 поля).
если вы запустите этот запрос:
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'TabA'
он вернет 7, потому что есть две таблицы с именем TabA
. Но добавив еще одно условие table_schema = 'SchemaNameHere'
:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'DBaseA'
AND table_name = 'TabA'
то он вернет только 3.
$cs = mysql_query("describe tbl_info");
$column_count = mysql_num_rows($cs);
Или просто:
$column_count = mysql_num_rows(mysql_query("describe tbl_info"));
Чтобы точно подсчитать столбцы вашей таблицы, вы можете получить форму information_schema.columns
с передачей нужного имени базы данных (схемы) и имени таблицы.
Ссылка на следующий код:
SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'myDB'
AND table_name = 'table1';
Просто используйте mysql_fetch_assoc и подсчитайте массив с помощью функции count()
этот запрос может помочь вам
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'tbl_ifo'