Aaaalso, des ist jetzt vllt. ein bisschen schwer verständlich, aber ich hoff man versteht ansatzweise, was ich machen will. :-)
Es geht um eine Suchfunktion. Die Suche ist zum Beispiel "alles klar". Per PHP wird der String "exploded" und in Teilstrings eingeteilt.
Der Query dazu:
mysql_query("SELECT * FROM tab WHERE feld LIKE '%$Explode[0]%'
OR feld LIKE '%$Explode[1]%'")
Das Problem ist, dass ich nicht davon ausgehen kann, dass das Suchwort aus 2 Teilwörtern besteht, d.h. wenn das Suchwort anstatt "alles klar" "alles" ist, dann wär $Explode[1] leer, was zu einem Vergleich feld LIKE '%%' führt und somit alles selectiert.
Ich bräuchte so ne Art if-Anweisung im Query, hab da schon ein bisschen rumprobiert, is aber nix rausgekommen.
Wie ist das ganze mittels PHP lösbar? Oder gibts da was seitens SQL?
WL
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Wenn DU als Tabellentyp MyISAM nutzt, dann kannst Du auf die zu durchsuchenden Felder einen FULLTEXT-Index legen, dann geht die Suche auch mit:
SELECT * MATCH(`feld`) AGAINST ('Hier stehen die einzelnen Worte der Suche') FROM `tab`
Bei einer Fulltext-Suche sucht MySQL nach den einzelnen Worten der Suchanfrage. Wenn nach Relevanz gesucht werden soll geht es auch als:
SELECT * FROM `tab` WHERE MATCH (`feld`) AGAINST ('Hier stehen die einzelnen Worte der Suche')
Eines sollte Dir allerdings klar sein: Einfügeoperationen in diese Datenbank werden wesentlich langsamer durch FULLTEXT-Indices.