Announcement

Collapse
No announcement yet.

MySQL Zeilen auf Abfrage vervielfachen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MySQL Zeilen auf Abfrage vervielfachen

    Hallo ,

    ich habe eine Datenbank mit 2 Spalten. Eine mit einem Text (Email Adressen) und eine mit einer Zahl. Der Text Datensatz (die Email) (meinetwegen auf die ganze Zeile) soll so oft verfielfacht werden, wie die Zahl ( also wenn die Zahl 5 ist, dann soll der Text Datensatz oder auch die ganze Zeile 5 mal dort stehen.

  • #2
    Hallo, willkommen im Forum.

    Was genau soll das am Ende werden, so ganz habe ich Dich noch nicht verstanden.
    Wo soll die E-Mail denn bspw. 5x stehen? Als Ausgabe an dem Bildschirm?
    PHP rocks!
    Eine Initiative der PHP Community

    Comment


    • #3
      Originally posted by Fragenstellene View Post
      ich habe eine Datenbank mit 2 Spalten. Eine mit einem Text (Email Adressen) und eine mit einer Zahl. Der Text Datensatz (die Email) (meinetwegen auf die ganze Zeile) soll so oft verfielfacht werden, wie die Zahl ( also wenn die Zahl 5 ist, dann soll der Text Datensatz oder auch die ganze Zeile 5 mal dort stehen.
      Also das nenne ich mal eine exotische Anforderung. Eigentlich will man sowas nie, eher umgekehrt. Man möchte immer eindeutige Daten, normalisiert, nicht vervielfacht oder uneindeutig. Es ist auch gar nicht ohne weiteres möglich, eine solche Abfrage zu bilden, auch wenn es vermutlich machbar ist. Es geht, aber es ist ungefähr so als möchte man ein Auto so umbauen, dass die Lenkung keinen Anschlag mehr hat und man rückwärts fährt, wenn man weit genug einschlägt.
      Ist ja auch egal, worauf ich hinaus will:
      Der Verdacht liegt nahe, dass Du ein Problem auf die falsche Art lösen willst. Erzähl doch mal mehr davon.
      Gruß, defo

      Comment


      • #4
        Klingt eher nach einem Teilproblem einer Aufgabe die man dann in einem Stück Software löst aber nicht schon in der SQL Abfrage. Oder stammt das aus der SQL Rätselecke und soll gar kein echtes Problem lösen?

        Comment


        • #5
          Originally posted by Ralf Jansen View Post
          Klingt eher nach einem Teilproblem einer Aufgabe die man dann in einem Stück Software löst aber nicht schon in der SQL Abfrage. Oder stammt das aus der SQL Rätselecke und soll gar kein echtes Problem lösen?
          Also denkbar wäre es bei irgendeiner Matrizenoperation oder zur definierten Datengenerierung zur Gegenprüfung von aggregierenden Reports.
          Ich habe hier eine mögliche Lösung angelegt.
          http://sqlfiddle.com/#!9/ec525/1
          Man muss aber prüfen, ob die row generator Basistabelle groß genug ist!
          Vielleicht kann man das auch verbessern, bin bei mySQL nicht uptodate.
          Gruß, defo

          Comment


          • #6
            Originally posted by Fragenstellene View Post
            Hallo ,

            ich habe eine Datenbank mit 2 Spalten. Eine mit einem Text (Email Adressen) und eine mit einer Zahl. Der Text Datensatz (die Email) (meinetwegen auf die ganze Zeile) soll so oft verfielfacht werden, wie die Zahl ( also wenn die Zahl 5 ist, dann soll der Text Datensatz oder auch die ganze Zeile 5 mal dort stehen.
            Geht mit einem lateral join und generate_series(), und zwar so:

            Code:
            test=*# select * from foo;
               t    | anzahl
            --------+--------
             text 1 |      3
             text 2 |      5
             text 3 |      2
            (3 rows)
            
            test=*# select foo.* from foo left outer join lateral (select * from generate_series(1, foo.anzahl)) x on true;
               t    | anzahl
            --------+--------
             text 1 |      3
             text 1 |      3
             text 1 |      3
             text 2 |      5
             text 2 |      5
             text 2 |      5
             text 2 |      5
             text 2 |      5
             text 3 |      2
             text 3 |      2
            (10 rows)
            Allerdings kann MySQL keines von beiden.

            Comment


            • #7
              Mal abgesehen davon, daß so eine Lösung in einem MySQL-Thread imho wieder mal absolut sinnfrei ist, stellt sich mir die Frage, wozu man das benötigt, @TE?
              PHP rocks!
              Eine Initiative der PHP Community

              Comment


              • #8
                Den TE interessiert es ja nicht mehr. Er hat die Frage gestellt und auf Wiedersehen
                Christian

                Comment


                • #9
                  Das kannst Du woran sehen?
                  Oder meinst Du, weil er sich noch nicht geäussert hat?
                  PHP rocks!
                  Eine Initiative der PHP Community

                  Comment


                  • #10
                    An den Datum des letzen Besuch des Forums
                    Christian

                    Comment


                    • #11
                      Vielleicht weiß er auch einfach die Domain nicht mehr...
                      PHP rocks!
                      Eine Initiative der PHP Community

                      Comment


                      • #12
                        Originally posted by Arne Drews View Post
                        Mal abgesehen davon, daß so eine Lösung in einem MySQL-Thread imho wieder mal absolut sinnfrei ist, ..
                        Solche "Lösungen" liefert akretschmer aber gerne, wahrscheinlich hält er Anteil an Postgres.
                        Meine Lösung sollte gut funktionieren, was auch der Grund sein könnte, dass sich der TE nicht mehr blicken lässt. Es kommt halt nicht immer ein Dankeschön mit Kusshand hinterher.

                        Wie schon angedeutet, zum gezielten Generieren von Testdaten bspw. könnte ich mir sowas vorstellen. Ich befürchte aber, dass es anders ist.
                        Gruß, defo

                        Comment


                        • #13
                          "Meine Lösung sollte gut funktionieren, was auch der Grund sein könnte, dass sich der TE nicht mehr blicken lässt. " -> Sofern er das Forum unangemeldet benutzt hat vielleicht, ansosnten war er doch seit 30.5. nichtmehr hier -> Profil -> letzte Aktivität
                          Christian

                          Comment

                          Working...
                          X