dave: mySQL: Nur Datensätze aufführen bis Buchstabe L

Hallo,

ich habe hier eine Datenabfrage:

$abfrage = "SELECT * FROM automatisierung ORDER BY produktname";
  $ergebnis = mysql_query($abfrage);
  while ($row = mysql_fetch_array ($ergebnis))
  {
  echo "Produktname: ".$row[produktname]."Dies ist der Produktname.";

Mit dieser Abfrage werden alle Daten in der Tabelle 'automatisierung' aufgerufen und alle Einträge in der Spalte 'Produktname' aufgelistet.

Wie muss ich den Befehl erweitern, damit ich er nur Buchstaben auflistet bis zum Buchstabe L?

Grüsse
Dave

  1. Hi

    naja ein where und dann schau mal unter regulären Ausdrücken nach - müsste da selber nachschaun

    MfG TOM

    1. Hallo,

      Es könnte reichen "WHERE produktname < "L".

      HTH

      Gruß Frank

      1. Hallo,

        Es könnte reichen "WHERE produktname < "L".

        Mhh stimmt, aber wenn dann WHERE productname < "L%" oder?

        HTH

        Gruß Frank

        MfG TOM

        1. Hallo,

          Mhh stimmt, aber wenn dann WHERE productname < "L%" oder?

          Ich glaube ist nicht nötig. Zumindest nicht bei informix und SQL-Server.

          Gruß Frank

          1. .. Fällt mir gerade auf: Falls alle mit L nicht mehr angezeigt werden sollen, ansonsten < K

            Gruß Frank

            1. .. Fällt mir gerade auf: Falls alle mit L nicht mehr angezeigt werden sollen, ansonsten < K

              Gruß Frank

              *g* Das hab ich mir auch schon gedacht, war aber zu Faul für nen Nachtrag

              TOM

              1. Erstmal Danke für die Hilfe... (man könnte auch statt < K einfach <= L schreiben oder?)

                Mein Befehl sieht jetzt so aus:

                $abfrage = "SELECT * FROM de_automatisierung WHERE produktname <= L";

                Ich habs auch schon mit "L" probiert und mit "L%" aber es geht nicht, der meckert immer... die Syntax ist doch korrekt oder?

                Grüsse
                Dave

                1. Erstmal Danke für die Hilfe... (man könnte auch statt < K einfach <= L schreiben oder?)

                  Normal ja, aber wie man sieht hast du das mit < K und < M auch net gecheckt gg

                  Mein Befehl sieht jetzt so aus:

                  $abfrage = "SELECT * FROM de_automatisierung WHERE produktname <= L";

                  Du musst wenn dann nicht <L sonder < 'L' schreiben!

                  Grüsse
                  Dave

                  Greets TOM

                2. Hi Dave,

                  nachdem sich die anderen gerade ins Wochenende verabschiedet haben, probieren wirs halt mal - und zwar per Regexp:

                  $abfrage = "SELECT * FROM de_automatisierung WHERE produktname REGEXP '[1]' ORDER BY produktname";

                  SELECT * sollte man möglichst vermeiden. Sag doch einfach, welche Werte Du tatsächlich brauchst/willst.

                  Grüße aus Würzburg
                  Julian


                  1. A-L ↩︎

                  1. nachdem sich die anderen gerade ins Wochenende verabschiedet haben, probieren wirs halt mal - und zwar per Regexp:

                    $abfrage = "SELECT * FROM de_automatisierung WHERE produktname REGEXP '[1]' ORDER BY produktname";

                    Danke, hat auf Anhieb geklappt :-) Mit [0-L] hab ich dann auch noch die Zahlen alle drin... super!

                    SELECT * sollte man möglichst vermeiden. Sag doch einfach, welche Werte Du tatsächlich brauchst/willst.

                    Hmm, vereinzelt hab ich das auch gemacht... da diese Tabelle nur aus 3 Spalten besteht, wovon ich nur 2 benötige, dachte ich der Stern würde genügen.

                    Grüsse
                    Dave


                    1. A-L ↩︎

                    1. Hallo Dave,

                      Mit [0-L] hab ich dann auch noch die Zahlen alle drin... super!

                      Wußte jetzt nicht genau, ob die Zahlen am Anfang oder am Ende kommen, und war zu faul zum probieren/nachschlagen. :-)
                      Mit Regexp kannst Du das ganze auch wunderbar per Adresszeile kontrollieren und entsprechende Anfangs- und Endparameter übergeben (z.B. für die restlichen Treffer ein $anfang=M und $ende=Z) und als Regexp '[1]' setzen. Erspart ggf. das mehrfache Anlegen von Dateien in den sich nur solche Parameter unterschieden.

                      Hmm, vereinzelt hab ich das auch gemacht... da diese Tabelle nur aus 3 Spalten besteht, wovon ich nur 2 benötige, dachte ich der Stern würde genügen.

                      Naja, also da sprechen dann noc mehr Gründe dagegen. Faulheit zählt nämlich net. ;-)
                      Also, zwei Spalten lassen sich ja wirklich noch ausschreiben. Interessant wird es, wenn Du anfängst irgendwann am System rumzubasteln und feststellst, dass Du noch ein, zwei,...viele Spalten mehr brauchst. Dann würdest Du mit obiger Abfrage all diese Werte abfragen, obwohl Du nur ein (oder zwei?) tatsächlich brauchst. Hast Du hingegen von vornherein angegeben, welche Du nur haben willst, steht einer Erweiterung der DB nichts im Wege. Ist halt etwas vorausschauender und vielleicht exakter gedacht.

                      Grüße aus Würzburg
                      Julian
                      Julian


                      1. ".$anfang."-".$ende." ↩︎

            2. .. Fällt mir gerade auf: Falls alle mit L nicht mehr angezeigt werden sollen, ansonsten < K

              Nein, natürlich < M ! Ich mache jetzt Schluss für die Woche.

              1. .. Fällt mir gerade auf: Falls alle mit L nicht mehr angezeigt werden sollen, ansonsten < K

                Nein, natürlich < M ! Ich mache jetzt Schluss für die Woche.

                löl - ich auch, mir is das jetzt nämlich auch nicht aufgefallen

                sollte wohl mal wieder n paar Jahre in die Grundschule gehen, mhh? <g>

                TOM

                P.S.: Viel Spaß am Wochenende- was machst du? Seh'n uns auf der LoveParade? <gg>