2012-05-08 32 views
24

Por ejemplo:¿Cómo cuento columnas de una tabla

tbl_ifo 

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

¿Cómo puedo contar las columnas de esta tabla usando MySQL?

Respuesta

47
SELECT count(*) 
FROM information_schema.columns 
WHERE table_name = 'tbl_ifo' 
+3

El punto de @codeMan es muy necesario. Si tiene múltiples bases de datos con el mismo nombre de tabla, entonces su punto es obligatorio. – Ankit

29

creo que es necesario también especificar el nombre de la base de datos:

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

si no se especifica el nombre de su base de datos, es probable que contará todas las columnas, siempre y cuando coincide con el nombre de tu mesa. Por ejemplo, usted tiene dos bases de datos: DBaseA and DbaseB, En DBaseA, que tiene dos tablas: Taba (3 campos), Tabb (4 campos). Y en DBaseB, tiene de nuevo dos tablas: TabA (4 campos), TabC (4 campos).

si ejecuta esta consulta:

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

se volverá 7 porque hay dos tablas denominadas TabA. Sin embargo, al añadir otra condición table_schema = 'SchemaNameHere':

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

entonces sólo devolverá 3.

+0

Creo que su '' DatabaseNameHere'' debe reemplazarse con ''SchemaNameHere'' – vol7ron

+0

Agregar el nombre de la base de datos proporcionará resultados más precisos si está ejecutando esto en un entorno donde puede tener varios de la misma aplicación instalada, por lo tanto, varias X las tablas están en el esquema. –

2

para contar las columnas de su tabla, precisamente, se puede obtener el formulario information_schema.columns con el paso de su base de datos deseada Nombre (Esquema) y en la tabla Nombre.


referencia el siguiente código:

SELECT count(*) 
FROM information_schema.columns 
WHERE table_schema = 'myDB' 
AND table_name = 'table1'; 
+0

su respuesta es la misma que johntotetwoo – rjmcb

+1

sí, porque no puedo enviar mi respuesta debido a mi conexión. pero después de mi envío, hay dos respuestas y ya se ha aceptado una: D – AKZap

0

Utilice simplemente mysql_fetch_assoc y el recuento de la matriz mediante la función count()

0

esta consulta puede ayudar a

SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo' 
AND TABLE_NAME = 'tbl_ifo' 
3
$cs = mysql_query("describe tbl_info"); 
$column_count = mysql_num_rows($cs); 

O r just:

$column_count = mysql_num_rows(mysql_query("describe tbl_info")); 
+0

esto es muy inteligente y flexible –

Cuestiones relacionadas