Na przykład:Jak mogę liczyć kolumny tabeli
tbl_ifo
id | name | age | gender
----------------------------
1 | John | 15 | Male
2 | Maria | 18 | Female
3 | Steph | 19 | Female
4 | Jay | 21 | Male
Jak mogę liczyć kolumny tej tabeli MySQL?
Na przykład:Jak mogę liczyć kolumny tabeli
tbl_ifo
id | name | age | gender
----------------------------
1 | John | 15 | Male
2 | Maria | 18 | Female
3 | Steph | 19 | Female
4 | Jay | 21 | Male
Jak mogę liczyć kolumny tej tabeli MySQL?
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'tbl_ifo'
myślę, że trzeba również podać nazwę bazy danych:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'SchemaNameHere'
AND table_name = 'TableNameHere'
jeśli nie podać nazwę bazy danych, są szanse, będzie ona liczyć wszystkie kolumny tak długo, jak pasuje do nazwy twojego stołu. Na przykład, masz dwie bazy danych: DBaseA and DbaseB
, W DBaseA
, ma dwie tabele: Taba (3 pola), Tabb (4 pola). I w DBaseB
, ponownie ma dwie tabele: TabA (4 pola), TabC (4 pola).
jeśli uruchomić tę kwerendę:
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'TabA'
powróci 7, ponieważ istnieją dwie tabele nazwanych TabA
. Ale przez dodanie kolejnego warunku table_schema = 'SchemaNameHere'
:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'DBaseA'
AND table_name = 'TabA'
następnie powróci tylko 3.
Myślę, że nazwa ''DatabaseNameHere'' powinna zostać zastąpiona'' SchemaNameHere'' – vol7ron
Dodanie nazwy bazy danych zapewni dokładniejsze wyniki, jeśli używasz tego w środowisku, w którym możesz mieć wiele zainstalowanych tej samej aplikacji, a więc wiele X tabele są w schemacie. –
policzyć kolumny tabeli precyzyjnie, można uzyskać formularz information_schema.columns
z przechodzącej żądany Database (Schema) Nazwa i tabela Nazwa.
referencyjny następujący kod:
SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'myDB'
AND table_name = 'table1';
Wystarczy użyć mysql_fetch_assoc i policzyć tablicę używając funkcji count()
zapytanie to może pomóc
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'tbl_ifo'
$cs = mysql_query("describe tbl_info");
$column_count = mysql_num_rows($cs);
O r po prostu:
$column_count = mysql_num_rows(mysql_query("describe tbl_info"));
to jest bardzo sprytne i elastyczne –
Punkt @codeMan jest bardzo potrzebny. Jeśli masz wiele baz danych o tej samej nazwie tabeli, to jego punkt jest konieczny. – Ankit