[MySQL 4.1] zwei mal like auf ein Feld

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.1] zwei mal like auf ein Feld

    Hi,

    Ich habe folgenden Query über meine sql - db laufen:

    SELECT * FROM data WHERE freigabe = '1' AND text like '%a%' AND text like '%b%';

    Warum geht das nicht? Wie muss das aussehen wenn ich im Feld text 2 Begriffe suchen lassen will, die vorkommen müssen. (also eine und suche).

    Bei der oder Abfrage geht das ohne Probleme...

    Gruß

  • #2
    AND oder OR ?


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Kommentar


    • #3
      ich brauche eine Lösung für AND die oder (or) Verbindung geht.

      Hintergrund: Das ganze ist ein bzw. zwei Suchfelder die entsprechend den Vorgaben der User abgefragt werden sollen.

      Gruß

      Kommentar


      • #4
        was willst du jetzt eigentlich?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          ok, bei erneutem durchlesen stelle ich auch fest, dass mein Text nicht gerade leicht zu verstehen ist. Also versuche ich es noch mal... sorry!

          Also ich habe eine mysql Datenbank die ein Feld text hat. Dieses Feld sollen meine User durchsuchen können. Damit das ganze auch Spass macht sollen die User 2 Suchbegriffe (2 Felder) eingeben können. Zudem haben die User die Möglichkeit auszuwählen wie die Suchfelder "verbunden" sind. sprich AND oder OR.

          OR funktioniert ohne Probleme jedoch habe ich mit der AND Bedigung (s. query im 1. Post) meine Probleme. -> Er findet nämlich nichts...

          Gruß

          Kommentar


          • #6
            eine mysql Datenbank die ein Feld text hat.
            ich würde das feld nicht unbedingt text nennen, sonst mußt du afaik immer `text` verwenden ...

            bei mir funktioniert die art von query ohne probleme ...

            Code:
            freigabe = '1'
            vielleicht liegst dadran. btw: wenns nen int ist, laß die ' ' weg ...
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Hi,

              Das Feld freigabe ist vom Typ: varchar(4) somit sollten die ' keine Probleme machen, oder?

              Ist die Bezeichnung text vorbelegt? Da alle anderen Abfragen ohne Probleme laufen dachte ich, dass das Wort nicht gesperrt ist.

              Gruß

              Kommentar


              • #8
                Ist die Bezeichnung text vorbelegt? Da alle anderen Abfragen ohne Probleme laufen dachte ich, dass das Wort nicht gesperrt ist.
                hmm, laut mysql.com gehts.
                Of the symbols in the preceding table, those following are disallowed by SQL-99 but allowed by MySQL as column/table names. This is because they are very natural names and a lot of people have already used them.

                * ACTION
                * BIT
                * DATE
                * ENUM
                * NO
                * TEXT
                * TIME
                * TIMESTAMP


                trotzdem sollte man die verwendung von namen, die irgend nen zusammenhang mit sql haben könnten, vermeiden. imho.

                wie gesagt, die art von query läßt sich (hier bei mir) ohne probleme erfolgreich ausführen.
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  ich habe das Feld jetzt auch mal testweise umbenannt - bringt keine Änderung.

                  Ich erhalte vom System auch keine Fehlermeldung. Er findet nur einfach nichts (obwohl es Treffer geben müßte) Wenn ich die 2. AND Verbindung raus nehme:

                  SELECT * FROM data WHERE freigabe = '1' AND text LIKE '%a%'

                  dann geht es auch sprich, ich bekomme Treffer.

                  BIN ICH BLÖD!!


                  ich habe in meiner db immer schön asdf und so eingegeben (also alles mit der linken hand) und nach was suche ich? a und b klar, dass die db nichts findet. Oh man - jetzt verhalte ich mich schon wie die DAUS bei mir im Geschäft. Sorry Jungs - mein Fehler!

                  Danke für eure Mühe...

                  Kommentar


                  • #10
                    eine mysql Datenbank die ein Feld text hat.
                    ich würde das feld nicht unbedingt text nennen, sonst mußt du afaik immer `text` verwenden ...
                    ich wusste noch nicht einmal dass eine DB ein feld haben kann. ich dachte immer nur, dass das mit tables geht...

                    a und b klar, dass die db nichts findet
                    jajajaja.....
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X