tada: MySQL-Abfrage, wenn kein "@"

Hallo,

ist es möglich eine MySQL Abfrage zu tätigen, bei der folgendes ausgeführt wird:

Zeige alle Einträge, die im Feld "name" kein "@"-Zeichen enthalten.

Ich dachte da an so etwas:

SELECT * WHERE name=!"@"

Wobei das ja totale flasch ist, deshalb frage ich ja, wie es geht.

Danke schon mal für eure Antworten.

  1. Hi tada!

    Ich dachte da an so etwas:
      SELECT * WHERE name=!"@"

    In Abfragen mit dem LIKE-Operator kannst du den Platzhalter % nutzen, der keins bis beliebig viele beliebige Zeichen zulässt.

    Mit dem NOT-Operator kannst du die Abfrage negieren. (Nicht WHERE NOT( name like...), sondern WHERE name NOT LIKE ...)

    Beachte auch, dass du das Suchmuster in einfache Anführungszeichen setzen solltest.

    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:)
    1. (Nicht WHERE NOT( name like...), sondern WHERE name NOT LIKE ...)

      das kommt auf das dmbs an

      NOT(name LIKE 'a%')
      oder
      name NOT LIKE 'a%'

      funktioniert in mysql 5.x einwandfrei

      1. Hi suit!

        NOT(name LIKE 'a%')
        [...]
        funktioniert in mysql 5.x einwandfrei

        Das funktioniert auch in jeder anderen Sprache, die den logischen unären Operator NOT unterstützt. Aber es sieht scheiße aus. =)

        Ich habe nur darauf hingewiesen, weil MySQL "NOT LIKE" anbietet. In C würdest du auch nicht schreiben if (!(a==b)).

        Und da gerade SQL eine Sprache ist, die den menschlichen Lesefluss relativ gut (im Vergleich) unterstützt, sollte man das auch ausnutzen.

        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. Hello,

    Du kannst auch eine Stringfunktion bemühen:

    SELECT <feldliste> from <tabelle> WHERE POSITION("@",name) > 0;

    http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_position

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de