Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: SQL select .. where id=1 or id=5 or id=19

  1. #1
    Registriert seit
    13.03.2007
    Ort
    Nürnberg
    Beiträge
    559
    Danke
    56
    Erhielt 50 Danke für 45 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo Datenbänker,

    gibt es eine bessere variante für MySQL wenn ich nach mehreren suche statt:

    select name from tbl where id=1 or id=5 or id=19 id=21 or id=22 or id=42;

    ?
    (das where bleibt nicht konstannt! die zahlen hab ich in einem PHP array und sind verschieden in der anzahl)
    Geändert von Senator42 (31.12.2012 um 10:00 Uhr) Grund: ergänzung: (..)
    Kabelsalat ist Gesund
    (vom CCC abgekupfert)

    Prognosen sind schwierig,
    besonders wenn sie die Zukunft betreffen.
    (Ursprung nicht wirklich bekannt)


    Zitieren Zitieren SQL select .. where id=1 or id=5 or id=19  

  2. #2
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.476
    Danke
    1.140
    Erhielt 1.238 Danke für 971 Beiträge

    Standard

    Du könntest deine Vergleichswerte für id in eine weitere Tabelle schreiben.
    Dann läßt sich bestimmt was mit joins machen ... Bin aber auch kein DB-Experte.

    Gruß und guten Rutsch
    Dieter

  3. #3
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Unterstützt MySQL where id in (1,5,19, ...)?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  4. #4
    Registriert seit
    13.03.2007
    Ort
    Nürnberg
    Beiträge
    559
    Danke
    56
    Erhielt 50 Danke für 45 Beiträge

    Standard

    Zitat Zitat von Rainer Hönle Beitrag anzeigen
    Unterstützt MySQL where id in (1,5,19, ...)?
    Ja, das geht,
    ABER

    das geht ( mit count(*) und GROUP BY Id )
    SELECT Id, count(*) FROM tbl WHERE Id IN(17,1) GROUP BY Id ;

    das geht NICHT ( mit count(*) und ORDER BY FIELD(Id,17,1) und GROUP BY Id )
    SELECT Id, count(*) FROM tbl WHERE Id IN(17,1) ORDER BY FIELD(Id,17,1) GROUP BY Id ;

    das geht ( mit count(*) und ORDER BY FIELD(Id,17,1) -- )
    SELECT Id, count(*) FROM tbl WHERE Id IN(17,1) ORDER BY FIELD(Id,17,1) ;
    [ definierte sortierung: ORDER BY FIELD(Id,17,1) ]
    [ bzw. sortierung genau in dieser Folge: ORDER BY FIELD(Id,17,16,1,7,4,3,5,6) ]

    ALSO
    ORDER BY FIELD(Id,17,1) __ und __ GROUP BY Id __ gleichzeitig geht nicht !
    Kabelsalat ist Gesund
    (vom CCC abgekupfert)

    Prognosen sind schwierig,
    besonders wenn sie die Zukunft betreffen.
    (Ursprung nicht wirklich bekannt)



  5. #5
    Registriert seit
    07.06.2011
    Beiträge
    117
    Danke
    4
    Erhielt 18 Danke für 18 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    probiers mal mit einer Unterabfrage:

    Code:
    SELECT 
      Id, Menge
    FROM 
      (
      SELECT 
        Id, count(*) AS Menge
      FROM 
        tbl 
      WHERE 
        Id IN(17,1) 
      GROUP BY 
        Id
      )
    ORDER BY 
      FIELD(Id,17,1)
    Mario

Ähnliche Themen

  1. TwinCAT <--> SQL
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 28.06.2010, 10:44
  2. SQL Datenbank
    Von kanne43 im Forum HMI
    Antworten: 11
    Letzter Beitrag: 25.02.2009, 21:37
  3. Von SQL 2000 Enterprise auf SQL 2005 zugreifen
    Von Black_Eagle im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 10.08.2007, 07:34
  4. Opc - Sql
    Von Human im Forum Hochsprachen - OPC
    Antworten: 10
    Letzter Beitrag: 06.03.2007, 11:02
  5. SQL Anywhere + WinCC
    Von Anonymous im Forum HMI
    Antworten: 1
    Letzter Beitrag: 15.10.2005, 23:13

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •