Einzelnen Beitrag anzeigen
  #1  
Alt 20.07.2012, 15:46:46
Doc_McSky Doc_McSky ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 49
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
Mit Zitat antworten