[MySQL 4.0] WHERe Klausel

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

  • [MySQL 4.0] WHERe Klausel

    Hallo,

    ich habe eine Tabelle mit den Spaltennamen: "ID, kategorie, artikel, view"

    Jetzt sind da drin mehrere Artikel gelistet, mit mehreren gleichen Artikelnummern. Wenn ich jetzt von 2 bestimmten Artikel alle Inhalte haben will, würde ich schreiben:

    SELECT * FROM tspi_option_ver WHERE artikel = '996' AND artikel = '924'

    Aber genau das macht er nicht. Schreib ich jeden Artikel einzeln, geht es. Schreib ich es so: SELECT * FROM tspi_option_ver WHERE artikel = '996' OR artikel = '924' funktioniert es auch. Aber wieso nicht die erste Schreibweise?

  • #2
    das sind die grundlagen der aussagenlogik.
    kein artikel kann gleichzeitig beide eigenschaften haben. die verknüpfung "und" auf zwei unterschiedlichen wahrheitswerten ergibt immer "falsch", sodass kein einziges artikel selektiert wird.

    Kommentar


    • #3
      Ok, danke für die Antwort.

      Hast du eine Ansatzmöglichkeit, wie ich von x-Artikeln, gehen wir mal von 2 aus, die Summe der Datensätze raubekomme?

      Wahrscheinlich mit " count(irgendwas) where artikel='996' " oder so? Aber ich müsste eben von mehreren Artikeln gleichzeitig die Anzahl wissen... Und deswegen dachte ich unlogischerweise, dass es vielleicht so gehen würde :/

      Kommentar


      • #4
        COUNT() ist schon richtig.

        schau dir aber mal GROUP an.

        PS: Bist nicht der erste, der nen Shop oder sowas programmiert.

        Kommentar


        • #5
          Hmmm ok,

          also:
          SELECT count( * )
          FROM tspi_option_ver
          WHERE artikel = '996'
          AND view = '0'

          gibt mir das richtige Ergebnis wieder, aber allerdings nur für einen Artikel. Wenn ich jetzt 2 oder 3 oder 18 Artikel gleichzeitig habe, dann finde ich einfach nicht die passende MySQL-Funktion dafür...

          Kommentar


          • #6
            das wundert dich nicht wirklich, wenn du WHERE artikel = '996' verwendest...

            Kommentar


            • #7
              Natürlich wundere ich mich nicht, aber mit mehreren Artikel klappt es ja nicht, was ja auch logisch ist.
              Die Group-Klausel hab ich mir angeschaut, aber auch da nicht eine richtige Funktion gefunden.
              Vielleicht geht es nur über Unterabfragen, aber das wären ja dann ziemlich viele...

              Kommentar


              • #8
                Natürlich wundere ich mich nicht, aber mit mehreren Artikel klappt es ja nicht, was ja auch logisch ist.
                warum ist das bitte logisch? vielleicht solltest du dich mal mit den grundlagen von sql beschäftigen...

                du willst mehrere datensätze selektieren? dann tue das. wo ist das problem, das where-statement anders aufzubauen?

                p.s. informiere dich unter anderem, _warum_ man ganzzahlige datentypen verwenden soll, wenn du natürliche (oder auch ganze) zahlen speichern willst.

                Kommentar


                • #9
                  Moin,

                  mach doch mal sowas (um das hier abzukürzen):

                  SELECT artikel, COUNT(ID) FROM Deine Tabelle GROUP BY artikel

                  Gruß,
                  Dennis

                  Kommentar


                  • #10
                    Original geschrieben von Dennis79
                    Moin,

                    mach doch mal sowas (um das hier abzukürzen):

                    SELECT artikel, COUNT(ID) FROM Deine Tabelle GROUP BY artikel

                    Gruß,
                    Dennis
                    Danke, aber so geht das ja eben nicht... Denn ich will ja nicht alle Artikel grupieren, sondern nur eine bestimmte Anzahl.

                    @penizillin

                    Ganz locker bleiben, wenn es denn so einfach wäre, würde ich wohl hier nicht fragen oder?
                    Hätte es jetzt mit SELECT COUNT(*) FROM tspi_option_ver WHERE artikel IN ('996', '924') gelöst...
                    Zuletzt geändert von cgdesign; 22.12.2006, 10:21.

                    Kommentar

                    Lädt...
                    X