mysql zwei mal count in einer abfrage ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
anzahl
bestimmtes feld
code
datenbank
feld
frage
gedanke
idee
information
liste
meistern
not
null
show
spalte
spalten
tabelle
url
-
hi,
ich würde gern in einer abfrage möglichst performant zwei informationen abfragen:
1. wieviele spalten gibt es ?
2. in wievielen spalten ist ein bestimmtes feld nicht gleich NULL
habt ihr da eine idee ?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hcms schrieb:
yo!
hi,
ich würde gern in einer abfrage möglichst performant zwei informationen abfragen:
1. wieviele spalten gibt es ?
2. in wievielen spalten ist ein bestimmtes feld nicht gleich NULL
habt ihr da eine idee ?
1. die spalten findest in 'show columns from information_schema.TABLES;'. hier ist die liste je datenbank.
wenn du dann sagst wie die datenbank aufgebaut ist, kann dir sagen wie die 2. frage zu meistern ist ;) -
also ich mein ganz einfach wenn ich eine tabelle hab in der es unter anderem die felder "id" und "andere_id" gibt, wobei "id" int mit autoincrement ist und "andere_id" int mit standart NULL
jetzt will ich zwei werte geliefert bekommen
1. anzahl aller datensätze (wie zb mit "COUNT(id) AS anzahl_alle")
2. anzahl aller datensätze wo "andere_id" nicht NULL ist -
SELECT COUNT(`id`), ( SELECT COUNT(`id_andere`) FROM `table` WHERE `id_andere` IS NOT NULL ) AS `spalte` FROM `TABLE`
Ungetestet und nur ein Gedanke, weiß nicht ob das richtig, sinnvoll oder funktionsfähig ist..
Beitrag zuletzt geändert: 18.2.2013 14:07:27 von fabi755 -
ja danke, aber ist das nicht irgendwie ohne sub-request möglich ?
-
Meiner Meinung nach nicht..
Da du durch das WHERE 2 Abfragen benötigst.. (alle und nicht NULL)
Bin mir aber ehrlich gesagt nicht so ganz sicher -
Altenativ könntest du noch multi_query verwenden, so wird das ganze zu "einer" pseudo-Query zusammengeführt.
-
hach ging doch ganz einfach, wer hätts gedacht...
'SELECT COUNT(id) AS alle, COUNT(id_andere) AS andere FROM tabelle' -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage