ich auf meiner ersten Frage auf Stack bin, wie ich habe ein paar Tage, da ich in dieser Angelegenheit zu kämpfen:Wie man eine Abfrage auf mehreren Spalten macht, ohne alle möglichen Permutationen zu schreiben?
ich eine komplexe Abfrage (PLSQL) auf einem Tisch machen will, die col1, col2, col3 hat , col4, COL5 Werte wie (Namen: die Split- ein Teil pro Spalte) mit
+------+--------+--------+--------+------+
| ID | Col1 | Col2 | Col3 | Col4 |
+------+--------+--------+--------+------+
| (#1) | Andrew | Joan | Bach | Mike |
| (#2) | Mark | Andrew | Livy | |
| (#3) | Joan | Arch | Donnie | |
| (#4) | Joan | Andrew | Lyx | |
+------+--------+--------+--------+------+
Anzahl der Namensteile unterscheiden sich von 1 bis 5.
ich möchte in verschiedenen Kombinationen wie folgt suchen :
- Suche nach Bach Joan Mike - get # 1, # 3, # 4 - in dieser Reihenfolge
- Suche nach Andrew Bach - folgenden Reihenfolge # 1 erhalten, # 2, # 4 - in dieser Reihenfolge
ich mag nicht die Idee, eine looooong Abfrage verwenden, in denen ich alle möglichen Permutationen, um schreiben, wird jedes Teil meiner Suchbegriffs mach
Was Ich möchte, dies zu erreichen:
- ersten gesetzt: Alle jene n Teile (beide Bach und Joan und Bach Spiel, in beliebiger Reihenfolge)
- zweiten Satz: match n-1 Teile (mindestens N-1 meiner Suche Teile der Zeile, in beliebiger Reihenfolge)
- dritten Satz: Spiel n-2 Teile
Ich verwende eine Datenbank ORACLE und ich dachte an sie in einer gespeicherten Prozedur zu machen: match_my_set (query_str, col1, col2, col3, col4, COL5). Ich würde mindestens 5 Loops (Loop in Loop) schreiben, um dies zu erreichen, aber ich bezweifle, dass es eine professionelle Idee ist. .
Jede Hilfe wird geschätzt. Danke
Ihre Frage ist nicht klar ... was bedeuten 'erhalten # 1, # 3, # 4 bestellen' \t Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http: // spaghettidba.com/2015/04/24/how-to-post-a-t-sql-Frage-auf-einem-öffentlichen-Forum /) zu lernen, wie Sie Ihre Fragequalität verbessern und bessere Antworten erhalten. –
Nun, ich habe ein kleines Update hinzugefügt. Hoffe, es hilft – Gigg
Ich mache ein Update mit, warum ich was Sie haben? Bitte überprüfen oder rückgängig machen, wenn nicht korrekt. Sie erwähnen Col5, aber Ihr Beispiel sieht nur aus wie 4 –