2017-07-21 6 views
1

Meine Tabellenspalte data-type ist String. Es enthält Werte wie a;b;c, d;e;f und so weiter. Dies bedeutet, dass alle Werte durch eine ; getrennt sind. Ich suche nach den Werten b und f. Bitte schlagen Sie vor, dass eine Abfrage Zeilen zurückgibt, die a;b;c und d;e;f mithilfe des Abfrage-Generators enthalten.RQL-Abfrage zum Suchen nach einer Zeichenfolge in kommagetrennten Spaltenwerten

+0

Wenn Sie in SQL-Abfrage gut sind, können Sie für SqlPassthroughQuery gehen https://docs.oracle.com/cd/E26180_01/Platform.94/RepositoryGuide/html/s0803overridingrqlgeneratedsql01.html –

Antwort

0

Sie möchten wahrscheinlich in die Out-of-the-Box-Implementierungen der atg.repository.servlet.SearchFormHandler und was es für Sie tun können. Das heißt, Ihre Anfrage wird wahrscheinlich einige String-Manipulation zu verlangen, und wie folgt aussehen:

fieldName STARTS_WITH ?';' OR fieldName CONTAINS ';'?';' OR fieldName ENDS_WITH ';'?

Die obige müssen mit einem StringBuffer in Java-Code aufgebaut werden, um sicherzustellen, dass die ? Eingabestring (z. B. b oder f) wird korrekt mit den ; Zeichen zitiert. Nicht sicher, ob Sie dies als eine Eigenschaftdatei außerhalb von JAVA ausführen können.

Das obige sollte funktionieren, kann aber auch nicht die Geschwindigkeit garantieren.

Möglicherweise müssen Sie auch _IGNORE_CASE zu den entsprechenden Operatoren hinzufügen, aber Sie haben die Notwendigkeit in Ihrer Frage nicht angegeben.

Verwandte Themen