Richard Kraus: Gegenteil von like

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

  1. Hallo,

    Gibt es das Gegenteil von like als mysql-abfrage für textteile?

    Suchst Du vielleicht NOT LIKE 'wort%'?

    Viele Grüße,
    Christian

    1. Klasse Danke,

      NOT LIKE reicht vollkommen

      ich sags ja, absoluter newbie

      Vielen Dank nochmals für Eure schnelle Hilfe

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

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

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

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

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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. 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