SQL Platzhalter rückwärts suchen
Hallo liebe Leute,
heute habe ich ein Problem, welches ich nicht einmal genau wüsste, wie ich es googeln sollte. Es geht um folgendes:
Ich habe eine Datenbank über Fahrzeuge. Bei den Fahrzeugen sind einzelne Bauteile zugeordnet, so das die DB weiß, bei Fahrzeug X ist ein Artikel Y zugehörig.
Soweit so gut.
Jetzt kommt der ertse Trick:
Der Artikel Y kann ggf. baugleich von verschiedenen Herstellern kommen, ich definiere das ganze durch Artikelnummern. So kann der Artikel Y die Nummer 1231456, 1232456 oder 1233456 haben, für die 3 Hersteller.
Um das bei einer Suche zu realisieren ist bei dem Fahrzeug in der Spalte für diesen Artikel eine Wildcard gesetzt für SQL, der Unterstrich, in der Spalte steht also 123_456
Funktioniert prima! ;)
Jetzt mein riesen Problem, wie realisiere ich die Rückwärtssuche:
Ich habe den Artikel 1232456 gewählt, will mir raussuchen lassen, welches Fahrzeug dazu gehört. Dummerweise steht in der DB beim Fahrzeug X aber nicht 1232456 drin, sondern 123*456 (der Stern dient zur besseren menschlichen Veranschauung und wird bei der Suche immer durch ein Unterstrich erstezt)
Noch dummer: Das Wildcard kann an unterschidelichen Stellen stehen, aber nie mehr als 2 in einer Artikelnummer (nämlich für Hersteller und Modellart)
WIE suche ich nun?
Menschlich würde ich sagen nach dem Motto:
Fahrzeuge suchen, die in der Spalte XY die größtmögliche Übereinstimmung mit der tatsächlichen Artikelnummer haben!
In der Spalte XY könnte nämlich stehen:
1232456 - gesuchte Nummer
123*456 - Möglichkeit 1
*232*56 - Möglichkeit 2
...
(man weiß also nie, wo die bis zu 2 Wildcards stehen könnten)
Wie soll ich das in SQL formulieren? Jemand eine Idee?
Vielen Dank euch bereits im Voraus.
Gruß
Doc
|