Abfrage: SELECT alles AUSSER x,y,z?
Domian
- php
0 Cheatah0 Hans1 Frank (no reg)0 Domian0 Frank (no reg)0 Domian
0 Marc
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
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
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
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
Hi,
SELECT * FROM
irgendwas
WHEREid
!= 1 ANDid
!= 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
Hi Domian
select ID from tabelle where ID not in (select ID from array_tabelle);
Gruß
Hans
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
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
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
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
Basteln:
Mit foreach durch das Array gehen und in den Query einfügen:
WHERE ID NOT LIKE 'x' AND NOT LIKE 'y'...