Suchalgorithmus

mtk-flo

Erfahrenes Mitglied
Hallo,

ich möchte ein Suchalgorithmus schreiben.

Ich bekomm von meinem Eingabefeld z.B. folgenden String:

"bla blub" or foo moep

Dieser soll dann folgender maßen umgesetzt werden:

( ( x=bla AND x=blub ) OR x=foo ) AND x=moep

Nur wie muss ich den Sting erlegen !?
Ich schaff es nicht, dass die " mit dem OR funktionieren :(
 
ja, die syntax ist mir klar...

aber ich weiß nicht, wie ich meinen String zerlegen muss, dass ich dann meine abfrage modilieren kann...
 
Ich glaube, dass ich nicht ganz das war ich suche....

Im Moment mach ich folgendes:

String str = "\"bla blub\" or foo moep";
String[] parm = str.split(" "); // Split mit mein String in ein Array bei einem (Leerzeichen)

Somit habe ich quasi alle Suchbegriff einzeln im Array...
nur, wie bekomm ich nun meine Begriffe in mein SQL rein ?

Ich muss ja prüfen ob ein " " vorhanden ist oder AND bzw. OR ...
 
Wie müsste denn im obigen Beispiel der SQL String dann aussehen?
Hab mich noch nicht soo intensiv mit SQL beschäftigt deswegen..
 
SELECT tabelleA.id, tabelleA.text, tabelleC.foo
FROM tabelleA LEFT JOIN tabelleB ON tabelleA.id = tabelleB.id
LEFT JOIN tabelleC.id ON tabelleB.id = tabelleC.id

WHERE ( (LCASE(tabelleA.text) LIKE ‘%bla%’ AND LCASE(tabelleA.text) LIKE ‘%blub%’) OR LCASE(tabelleA.text) LIKE ‘%foo%’ ) AND LCASE(tabelleA.text) LIKE ‘%moep%’

ORDER BY tabelleA.text

So sieht mein SQL Befehl aus...
LCASE ist Lowercase, das die Abfrage nicht CaseSesitiv ist...

Ich muss das Feld tabelleA.text nach den Suchbegriffen durchsuchen...​
 
Zuletzt bearbeitet:
mtk-flo hat gesagt.:
Hallo,
( ( x=bla AND x=blub ) OR x=foo ) AND x=moep

selbst wenn du deinen string zerlegst und auf diese weise ueberpruefst, wird er nichts bringen.
String x
x kann nicht gleichzeitig "bla" und "blub" sein.
Ich weiss, dass es nur ein beispiel ist, aber nur zur sicherheit.
wenn dann solltest du pruefen
if (x.indexOf("bla") > -1 && x.indexOf("blub") > -1) ...
 

Neue Beiträge

Zurück