Unterschiedliche Bedingungen abfragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unterschiedliche Bedingungen abfragen

    Ich möchte ermitteln, wieviele Datensätze einer Datenbank in einer Spalte den Wert "f" haben und wieviele den Wert "m" haben.

    Bisher kostet mich das blöderweise zwei Abfragen:

    SELECT COUNT(id) ... WHERE spalte 1 = f
    und
    SELECT COUNT(id) ... WHERE spalte1 = m

    Das finde ich irgendwie doof - könnte man das nicht eleganter, sprich in einem Statement abfragen ?

    Danke euch !!
    Yeah !

  • #2
    Code:
    SELECT
        SUM(IF(spalte1='f', 1, 0)) SpF,
        SUM(IF(spalte1='m', 1, 0)) SpM,
    FROM
        tabelle
    WHERE
        spalte1 IN ('f', 'm')
    1. ohne garantie
    2. es kann sein, dass die beiden einzel COUNTs schneller sind, als die eine query.
    3. die WHERE ist optional, sodass nicht alle DSs berücksichtigt werden müssen
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Code:
      SELECT
        spalte1, COUNT(id) anzahl
      FROM tabelle
      WHERE spalte1 IN ('f', 'm')
      GROUP BY spalte1
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        @happy

        bist du dir sicher?

        denn ....
        den Wert "f" haben und wieviele den Wert "m" haben
        ... also zwei zahlen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Original geschrieben von Abraxax
          also zwei zahlen.
          deswegen auch zwei datensätze im ergebnis, oder?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            schon gut...

            ich habs als spalten gemacht ...
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              SUM(IF(spalte1='f', 1, 0)) SpF,
              SUM(IF(spalte1='m', 1, 0)) SpM,
              Wo gibt es die Erklärung zu "if" in der mysql Doku? Kann die nicht finden.
              Pickel ? Übergewicht ? Depressionen ?
              Brot, Kartoffeln und Milch sind Gift!
              http://www.paleofood.de

              Kommentar


              • #8
                http://dev.mysql.com/doc/mysql/en/Co...functions.html
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Hehe, ich danke euch !

                  Wenn interesse daran besteht, werde ich alle drei Möglichkeiten mal hinlänglich der Performance testen und die Ergebnisse hier posten ?!?
                  Yeah !

                  Kommentar

                  Lädt...
                  X