juergen: SQl Where abfrage mit joker

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

  1. 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

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. 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

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Unser Problem ist, dass wir eine Demokratie entwickelt haben, was nicht immer der richtige Weg ist  --  Bernie Ecclestone zu den lästigen Diskussionen um Regeländerungen in der Formel 1
    1. Hallo Rouven und Chris,

      im Vergleich zu Euch war ich lahm und schlampig ...

      Freundliche Grüße

      Vinzenz

      1. 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

    2. 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

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  3. 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