kostenloser Webspace werbefrei: lima-city


mysql zwei mal count in einer abfrage ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h**s

    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 ?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hcms schrieb:
    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 ?
    yo!
    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 ;)
  4. Autor dieses Themas

    h**s

    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
  5. 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
  6. Autor dieses Themas

    h**s

    ja danke, aber ist das nicht irgendwie ohne sub-request möglich ?
  7. 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
  8. m****r

    Altenativ könntest du noch multi_query verwenden, so wird das ganze zu "einer" pseudo-Query zusammengeführt.
  9. Autor dieses Themas

    h**s

    hach :megarofl: ging doch ganz einfach, wer hätts gedacht...

    'SELECT COUNT(id) AS alle, COUNT(id_andere) AS andere FROM tabelle'
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!