MySQL-Abfrage, wenn kein "@"
tada
- datenbank
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.
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
(Nicht
WHERE NOT( name like
...), sondernWHERE name NOT LIKE
...)
das kommt auf das dmbs an
NOT(name LIKE 'a%')
oder
name NOT LIKE 'a%'
funktioniert in mysql 5.x einwandfrei
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
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