Markus Trusk: /mySQL effizient alphabetisch auslesen?

Morgen,
Wenn ich alle Daten aus der DB alphabetisch ausgeben will, könnte ich folgendes schreiben:

SELECT * FROM tabelle WHERE Name LIKE "A%"  ..LIKE "B%".., usw.
$auslesen->execute;...
while $auslesen->fetchrow_array....
#Daten ausgeben.

wenn ich das Ganze in eine Schleife packe und von A-Z 0-9 und ÖÄÜ durchlaufen lasse, erscheint mir diese Methode nicht sehr effizient. Gibt es da noch eine andere Möglichkeit?
P.S Zuerst ale Daten einlesen und dann sortieren wäre wahrscheinlich auch keine gute Lösung.
Vielleicht könnte man ja die Daten "on the fly" sortiert ausgeben, also aus der DB nur einlesen und Perl die Sortierarbeit machen lassen, aber wie am effizientesten?

Markus Trusk.

  1. Hi,

    wenn ich das Ganze in eine Schleife packe und von A-Z 0-9 und ÖÄÜ durchlaufen lasse, erscheint mir diese Methode nicht sehr effizient. Gibt es da noch eine andere Möglichkeit?

    ja, alles in einem Rutsch machen. Du willst doch eh alles herausbekommen, oder?

    P.S Zuerst ale Daten einlesen und dann sortieren wäre wahrscheinlich auch keine gute Lösung.

    Nein, das Sortieren kann und soll die DB übernehmen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      ja, alles in einem Rutsch machen. Du willst doch eh alles herausbekommen, oder?

      ja, dann fang mal bitte an zu erklären, oder erwartest du, dass ich als DB Newbie nur im Entferntesten annehmen soll, was du jetzt meinst?

      Markus Trusk.

      1. Hallo,

        ja, dann fang mal bitte an zu erklären, oder erwartest du, dass ich als DB Newbie nur im Entferntesten annehmen soll, was du jetzt meinst?

        Dir wurde gesagt, dass es eine der Hauptaufgaben eines DBMS ist, Daten zu sortieren. Also nimm Dir die Doku zu Deinem DBMS, suche dort nach "sort", Bsp.: http://www.mysql.com/search/index.php?q=sort&from=%2Findex.html, finde die entsprechenden Kapitel, Bsp.: http://www.mysql.com/doc/en/Sorting_rows.html, lese diese, teste das Gelesene aus und frage nach, wenn etwas Konkretes nicht klappt.

        Sollte Dein DBMS nicht MySQL sein, gehe ähnlich vor.

        viele Grüße ;-))

        Axel

        1. Hi,
          ja ich glaube so etwas habe ich gesucht, danke.

          Markus Trusk.

      2. Wenn Du ein sortiertes Ergebnis möchtest :

        SELECT * FROM tabelle WHERE Deine_Bedingung ORDER BY NAME

        ORDER BY sortiert Dein Ergebnis, Du kannst über ASC, DESC noch die Sortierrichtung angeben. Googel mal nach einer genauen Beschreibung.

        Oder hab ich Dich falsch verstanden ?

        Gruß, Lirpa

  2. use Mosche;

    SELECT * FROM tabelle WHERE Name LIKE "A%"  ..LIKE "B%".., usw.
    $auslesen->execute;...
    while $auslesen->fetchrow_array....
    #Daten ausgeben.

    Warum nicht einfach:
    SELECT * FROM tabelle ORDER BY Name;

    use Tschoe qw(Matti);

    --
      Anyone who quotes me in their sig is an idiot. -- Rusty Russell.