Domian: Abfrage: SELECT alles AUSSER x,y,z?

Hey :)

Ich hab eine Tabelle mit vielen verschiedenen IDs. In einem Array hab ich ein paar Zahlen gespeichert. Nun möchte ich alle IDs dieser Tabelle selektieren, AUSSER diejenigen, die ich in meinem Array hab.

Wie lässt sich das denn selektieren? Gibts da einen Befehl für oder muss man basteln?

Gruß
Domian

  1. Hi,

    Wie lässt sich das denn selektieren?

    mit der WHERE-Clause.

    Gibts da einen Befehl für oder muss man basteln?

    Nein, es gibt Operatoren für "nicht".

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Nein, es gibt Operatoren für "nicht".

      Ja, aber wie mach ich das mit dem Array? Ich hab ja die Zahlen nicht direkt verfügbar, so dass ich sie in die Anweisung schreiben könnte, sondern sie stehen ja im Array.

      Normalerweise würde ich also schreiben:
      SELECT * FROM irgendwas WHERE id != 1

      Und ich erhalte alle IDs außer 1.

      Oder das:
      SELECT * FROM irgendwas WHERE id != 1 AND id != 3

      Nun möchte alle außer die IDs 1, 3 und 8. Und diese hab ich im Array stehen. Wie bekomme ich das dann in die oben stehende Anweisung?

      Gruß
      Domian

      1. Hi Domian!

        Nun möchte alle außer die IDs 1, 3 und 8. Und diese hab ich im Array stehen. Wie bekomme ich das dann in die oben stehende Anweisung?

        Willst du damit andeuten, dass du nicht weißt, wie man auf Arrayinhalte zugreift?

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
      2. Hi,

        SELECT * FROM irgendwas WHERE id != 1 AND id != 3

        den IN-Operator kennst Du?

        Nun möchte alle außer die IDs 1, 3 und 8. Und diese hab ich im Array stehen. Wie bekomme ich das dann in die oben stehende Anweisung?

        Siehe Hopsels Rückfrage.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hi Domian

    select ID from tabelle where ID not in (select ID from array_tabelle);

    Gruß

    Hans

  3. Hallo,

    pack am besten dein Zahlenarray in eine komma-separierte Liste
    und benutze diese als Argument für den Operator "NOT IN (....)"
    sofern dies dein Datenbanksystem unterstützt, also in etwa so:

      
    SELECT *  
    FROM Tabelle  
    WHERE Id NOT IN (1, 47, 53, 111, 231)  
    
    

    Hoffe das hilft dir weiter.
    Frank

    1. Hallo,

      pack am besten dein Zahlenarray in eine komma-separierte Liste
      und benutze diese als Argument für den Operator "NOT IN (....)"
      sofern dies dein Datenbanksystem unterstützt, also in etwa so:

      Oh prima, das hilft mir schon weiter. Man kann ein Array in eine komma-separierte Liste packen? Das war eigentlich mein Hauptproblem ;)

      Gruß
      Domian

      1. Hi,

        ja, man kann auch in PHP ein Array in eine kommaseparierte Werteliste als String konvertieren, soweit ich mich erinnere.
        Such in deinem PHP-Handbuch oder sonstwo mal nach Implode bzw.
        Explode.

        Ciao, Frank

        1. Hi,

          ja, man kann auch in PHP ein Array in eine kommaseparierte Werteliste als String konvertieren, soweit ich mich erinnere.
          Such in deinem PHP-Handbuch oder sonstwo mal nach Implode bzw.
          Explode.

          *kreisch*
          Es klappt! :D

          Ich hatte bei array nachgeschaut und mir dort alle möglichen Funktionen angesehen, aber da war nix passendes bei. Aber implode war's... ;-) Thx.

          Gruß
          Domian

  4. Basteln:

    Mit foreach durch das Array gehen und in den Query einfügen:

    WHERE ID NOT LIKE 'x' AND NOT LIKE 'y'...