Pitt: Datensätze aus Datenbank auslesen

hi,

ich hab eine datenbank mit ca. 3.000.000 datensätzen.

jetzt muss ich immer so ca. 50 - 100 datensätze auslesen.

die datensätze werden über eine fünfstellige nummer ausgelesen.

das problem is mit der abfrage.

$sql=qq{select * from shop where number=12345 and number=12765 and ... und das 50 bis 100 mal};

kann man das nich etwas besser lösen also das mit dem where numer=13456???

mfg pitt

  1. Hello,

    das problem is mit der abfrage.

    $sql=qq{select * from shop where number=12345 and number=12765 and ... und das 50 bis 100 mal};

    Das ist Mengenlehre oder doch 'Mengenleere' (-->PISA)?

    Viele SQL-Datenbank-Systeme kennen die Filterbedingung 'where FILED in(<set>)', wobei '<set>' eine Kommaseparierte Liste der zulässigen Werte ist. Außerdem kann man einen Join mit eiern Wertetabelle aufbauen; bei einigen Systemen gibt es dann da 'offset' und 'limit' oder etwas vergleichbares.

    Und 'kleiner' und 'größer' soll es angeblich auch noch geben *gg*

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  2. yo,

    ich hab eine datenbank mit ca. 3.000.000 datensätzen.

    das ist nicht wenig. hoffentlich hast du auch indexe an der richtigen stelle gesetzt.

    die datensätze werden über eine fünfstellige nummer ausgelesen.

    nur der interesse halber, ist das eine postleitzahl ?

    $sql=qq{select * from shop where number=12345 and number=12765 and ... und das 50 bis 100 mal};

    der operator ist falsch. er müsste OR und nicht AND sein. mit deiner abfrage wirst du keinen atensatz bekommen.

    kann man das nich etwas besser lösen also das mit dem where numer=13456???

    jein, die gewünschten zahlen musst du schon alle hinschreiben, solange sie sich nicht nach einem schema "errechnen" lassen. aber man kann es kürzer schreiben.

    SELECT spalte1, spalte2...
    FROM shop
    WHERE number IN (12345, 12765, .....14691)

    Ilja