Chrisi: MySQL wenn Abfrage kein Resultat dann Abfrage erweitern ...

Hi zusammen,

ich habe hier eine Abfrage die aus einer DB Artikel laden soll, nun möchte ich hergehen und einmal "Scharf" abfragen, wenn diese Abfrage aber kein Ergebnis erziehlt soll anstatt "+word +word" über Fuzzy gesucht werden "word word" ...

Mein Problem dabei ist das ich 2mal eine Query sende, ich starte einmal die scharfe Abfrage und prüfe dann das Resultat, dannach dann Fuzzy wenn das Resultat = 0 ...

Meine Frage, kann man sowas auch in einer Query verarbeiten ?

Also:

SELECT COUNT(id) AS numrows,MATCH (title,description) AGAINST ('word word') AS relevance
FROM table
 IF(
 numrows > 0,
 MATCH (i.title,i.description) AGAINST ('+word +word') IN BOOLEAN MODE),
 MATCH (i.title,i.description) AGAINST ('word word')
 )
GROUP BY id

Das ist jetzt nur eine Phantasie Query zu Demozwecken :-) Könnte mir aber vorstellen das sowas irgendwie funktioniert ...

Hat da jemand einen Tipp für mich ?

Danke mal wieder und Grüße,

Chrisi ...

  1. Hallo Chrisi,

    Mein Problem dabei ist das ich 2mal eine Query sende, ich starte einmal die scharfe Abfrage und prüfe dann das Resultat, dannach dann Fuzzy wenn das Resultat = 0 ...

    SELECT COUNT(id) AS numrows,MATCH (title,description) AGAINST ('word word') AS relevance

    Deine Syntax läßt vermuten, dass Du MySQL im Einsatz hast.

    Hat da jemand einen Tipp für mich ?

    Kein Problem für eine Stored Procedure. Ob Stored Procedures von Deinem DBMS unterstützt werden, kannst Du dem Handbuch entnehmen. Bei MySQL gibt es diese ab Version 5.0.

    Daher meine Frage: Welches DBMS, welche Version?

    Freundliche Grüße

    Vinzenz

    1. Hi Vinzenz,

      Daher meine Frage: Welches DBMS, welche Version?

      Ich nutze hier MySQL 5.0.15 (Standart). Diese Prozeduren sind dann sowas wie eine ausgelagerte Funktion die ich in meiner Query abrufen kann, richtig ?

      Danke und Gruss

      Chrisi