SQl Where abfrage mit joker
juergen
- datenbank
Hallo,
ich habe eine abfrage bei der man nach Ereignissen eines Tages abfrägt das funktioniert auch, nun will ich auch alle ereignisse anzeigen an allen Tagen.Doch mit dem joker zeichen * funktioniert es nicht , habe es im mysql admin getestet.
Funktioniert:
SELECT id, datum,id_hersteller, id_modell, groese, id_farbe, vk_ebay, ebay_art_nr FROM ebay_eingestellt WHERE datum='$datum'
Funktioniert nicht:
SELECT id, datum,id_hersteller, id_modell, groese, id_farbe, vk_ebay, ebay_art_nr FROM ebay_eingestellt WHERE datum='*'
wer weiss warum nicht?
danke jürgen
Hi,
ich habe eine abfrage bei der man nach Ereignissen eines Tages abfrägt das funktioniert auch, nun will ich auch alle ereignisse anzeigen an allen Tagen.Doch mit dem joker zeichen * funktioniert es nicht , habe es im mysql admin getestet.
Funktioniert:
SELECT id, datum,id_hersteller, id_modell, groese, id_farbe, vk_ebay, ebay_art_nr FROM ebay_eingestellt WHERE datum='$datum'Funktioniert nicht:
SELECT id, datum,id_hersteller, id_modell, groese, id_farbe, vk_ebay, ebay_art_nr FROM ebay_eingestellt WHERE datum='*'wer weiss warum nicht?
Zunächst mal, weil Vergleiche mit = keine Wildcards unterstützen, sondern dafür der Operator LIKE gedacht ist.
Und dann ist auch * bei MySQL kein Wildcard-Zeichen.
Warum lässt du den Vergleich des Datums denn nicht einfach weg, wenn sein Inhalt dir egal ist?
MfG ChrisB
Hello,
Funktioniert nicht:
SELECT id, datum,id_hersteller, id_modell, groese, id_farbe, vk_ebay, ebay_art_nr FROM ebay_eingestellt WHERE datum='*'
ganz viele Anmerkungen/Fragen:
(1) Was für ein Datentyp hat datum? Wenn es NICHT ein DATE/DATETIME ist, dann wäre jetzt die Gelegenheit das Datenmodell zu überdenken. Es wird dir _garantiert_ Probleme machen
(2) Das Wildcard-Zeichen in SQL ist typischerweise %, lediglich wenige DBMS wie z.B. die Jet-Engine unterstützen *
(3) Um Wildcards als solche zu verwerten wird ein anderer Operator als "=" benötigt, der sich LIKE nennt.
(4) Welchen Sinn soll es haben, einen Filter zu setzen (WHERE), nur um dann NICHT zu Filtern (*). Was möchtest du bezwecken? Lass ggf. einfach die Bedingung weg oder ersetze sie durch etwas wie datum IS NOT NULL
("Datum ist vorhanden")
MfG
Rouven
Hallo Rouven und Chris,
im Vergleich zu Euch war ich lahm und schlampig ...
Freundliche Grüße
Vinzenz
boah Vinz,
im Vergleich zu Euch war ich lahm und schlampig ...
wenn du das schon von dir behauptest, wenn du mal einen "normalen" post erstellst und sonst immer so sorgfältig und schön formatiert an die sache rangehst, was soll ich dann erst sagen ? P
Ilja
Moin
(2) Das Wildcard-Zeichen in SQL ist typischerweise %, lediglich wenige DBMS wie z.B. die Jet-Engine unterstützen *
(3) Um Wildcards als solche zu verwerten wird ein anderer Operator als "=" benötigt, der sich LIKE nennt.
Ähem, ich weiß nicht ob ich mich jetzt irre aber bei der Volltextsuche in Boolean Mode in MySQL ist * als Wildcard hinter einem Begriff erlaubt.
Leider wie es scheint nicht vor einem Suchbegriff, wenn es da eine Lösung gäbe wäre es toll die zu erfahren.
Dort ist dann nicht LIKE notwendig sondern MATCH AGAINST
Korrigiert mich bitte wenn ich falsch liege.
Gruß Bobby
Hallo,
SELECT id, datum,id_hersteller, id_modell, groese, id_farbe, vk_ebay, ebay_art_nr FROM ebay_eingestellt WHERE datum='*'
wer weiss warum nicht?
* ist in Standard-SQL kein Wildcard-Zeichen.
Lass doch einfach die WHERE-Klausel weg, wenn Du sie nicht nutzen willst :-)
Freundliche Grüße
Vinzenz