SELECT Abfrage

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

  • SELECT Abfrage

    Hallo Forum,

    ich habe mal wieder ein Problem mit einer SELECT Abfrage.

    Ich habe eine Tabelle mit Namen, nun möchte ich per Zufall vier der Namen auswählen. Das habe ich so gemacht:

    PHP-Code:
    SELECT FROM names WHERE name maier ORDER BY RAND() LIMIT 4 
    Wenn nun nicht 4 Ergebnisse für einen Namen existieren, möchte ich Datensätze haben, die auf alle Namen zutreffen. Diese sollen aber nur angezeigt werden, wenn für einen Namen null oder weniger Ergebnisse vorliegen.

    Beispiel: ich frage den Namen Maier ab, es gibt zwei Einträge für Maier, aber ich möchte vier angezeigt haben -> die restlichen beiden sollen dann welche sein, die auf alle namen zutreffen.

    Ist das mit einer einzigen SQL-Abfrage möglich, wenn ja, wie muss die Abfrage lauten? Nehmen wir an, diese Namen, die für alle gelten heissen 'standard'.

    Danke für Eure hilfe und ein fröhliches Osterfest.

    Bis dann
    RON

  • #2
    Auch wenn ich nicht genau verstanden habe, was Du vorhast, wäre vielleicht LIKE für Dich interessant.

    Kommentar


    • #3
      Danke für Deine Antwort. Ich habe das vielleicht ein wenig komisch erklärt. Und zwar frage ich folgendes ab:

      SELECT * FROM names WHERE name = maier ORDER BY RAND() LIMIT 4

      Nun erhalte ich zwei Datensätze (weil nur zwei Datensätze für Maier existieren), aber ich will immer 4 Datensätze haben.

      Die noch fehlenden zwei Datensätze sind Standarddatensätze, die unter name=standard gespeichert sind. Meine Frage ist nun, ob ich diese Bedingungen in nur einer SQL Abfrage unterbringen kann.

      Danke und viele Grüsse
      RON

      Kommentar


      • #4
        ... where `name`='maier' or `name`='standard' ...
        ist es das was du willst?

        btw: gibts denn auch standard als namen

        Kommentar


        • #5
          mit deiner syntax erhältst du nur die werte mit meier.
          danach müsstest du meiner meinung nach feststellen, wieviele datensäze noch fehlen und diese nochmals mit standard abfragen. wenn du das in einer abfrage packst ist nciht gewährleistet, das meier ei der abfrage priorität erhält.

          denn sinn versehe ich zwar nicht, aber ok.

          ob das order bei rand() was nützt kann mir schwer vorstellen das etwas "zufällig" geordnet werden soll.

          Kommentar


          • #6
            Original geschrieben von rlebek
            Nun erhalte ich zwei Datensätze (weil nur zwei Datensätze für Maier existieren), aber ich will immer 4 Datensätze haben.
            Warum möchtest Du, wenn nur zwei Datensätze existieren, unbedingt vier anzeigen? Das scheint mir irgendwie sinnfrei zu sein.

            Kommentar

            Lädt...
            X