Gegenteil von like
Richard Kraus
- datenbank
0 Christian Seiler0 wahsaga0 Simone
Hallo Experten,
wahrscheinlich eine saudumme Newbie-Frage:
Gibt es das Gegenteil von like als mysql-abfrage für textteile?
Frei nach dem Motto: finde alles außer ...
oder muß ich Verknüpfungen mit or zusammenstellen?
In einem Feld habe ich bis zu 5 Wörter, die in allen Datensätzen gleich sind, aber nicht an derselben Position
Einzelne Worteinträge selektiere ich mit like %bla%
Aber, kann ich eine negative Suche auch mit einem Befehl machen?
Danke für eure Hilfe
Hallo,
Gibt es das Gegenteil von like als mysql-abfrage für textteile?
Suchst Du vielleicht NOT LIKE 'wort%'
?
Viele Grüße,
Christian
Klasse Danke,
NOT LIKE reicht vollkommen
ich sags ja, absoluter newbie
Vielen Dank nochmals für Eure schnelle Hilfe
Hi, Christian Seiler
Der LIKE Vergleich ist bei einer entsprechenden Datenmenge nicht die "gute Wahl"
Du solltest vorher Deine Datensätze (Auswahl) einschränken. Bzw. einen Index nutzen.
Explain SELECT ...... zeigt Dir wo der weg hingehen kann
Das Feld Rows zeigt Dir wie effizent Deine Abfrage gehalten ist.
( je kleiner um so besser )
Simone
yo,
Der LIKE Vergleich ist bei einer entsprechenden Datenmenge nicht die "gute Wahl"
LIKE kann genauso wie andere operatoren auch einen index benutzen. insofern sind konstrukte wie LIKE 'Test%'unkritisch. nur wenn man auch noch den platzhalter am anfang setzt, dann kann ein vorhandener index nicht benutzt werden LIKE '%Test%'.
ILja
yo,
Der LIKE Vergleich ist bei einer entsprechenden Datenmenge nicht die "gute Wahl"
LIKE kann genauso wie andere operatoren auch einen index benutzen. insofern sind konstrukte wie LIKE 'Test%'unkritisch. nur wenn man auch noch den platzhalter am anfang setzt, dann kann ein vorhandener index nicht benutzt werden LIKE '%Test%'.
ILja
HI, Ilja
Joa, das ist richtig dennoch gibt es wesentlich "schneller" String-vergleichs-funktionen.
siehe: http://dev.mysql.com/doc/refman/5.0/en/query-speed.html
Simone
yo,
Joa, das ist richtig dennoch gibt es wesentlich "schneller" String-vergleichs-funktionen.
du meinst sicherlich operatoren ? bei string-funktionen benutzt mysql nämlich schon mal gar keinen index, weil das dbms keine funktionalen indexe kennt.
Ilja
hi,
Gibt es das Gegenteil von like als mysql-abfrage für textteile?
Meinst du
WHERE feld NOT LIKE '...'
?
In einem Feld habe ich bis zu 5 Wörter, die in allen Datensätzen gleich sind, aber nicht an derselben Position
Einzelne Worteinträge selektiere ich mit like %bla%
Aber, kann ich eine negative Suche auch mit einem Befehl machen?
Was verstehst du bezogen auf diesen speziellen Fall unter der "negativen" Suche?
gruß,
wahsaga
HI
Es Gibt da eine Menge von String(vergleichen)
http://dev.mysql.com/doc/refman/5.0/en/regexp.html
REGEXP ist etwas "träge" aber Du kannst viel mit anstellen.
Für Deine Sache würde ich die Stringfunktionen + Index von mysql nutzen.
Simone