Best Match abfrage

andi.m

Neuer Benutzer
Beiträge
2
Guten Abend zusammen,

Ich stehe vor folgendem Problem und finde nach x Stunden googeln keinen gescheiten Ansatz für eine Lösung...

Ich habe eine Zahl z.B. 277930075
In einer MySQL Tabelle habe ich unter Prefix eine x Anzahl Zahlen. Ich möchte nun eine Abfrage machen wo mindesten die ersten 3 Zahlen gleich sind oder mehr.... ich weis ich habe in der Tabelle die 2778 und die 2779 stehen. Möchte aber nur die 2779 als Ausgabe erhalten. Wie setzt ich dies am besten um?

Vielen Dank für Eure Vorschläge und Hilfe

Gruss

Andi
 
Werbung:
Die 2778 hat aber auch die ersten drei Zifferen gleich...

Spielt es eine Rolle wie viele Stellen die Zahl hat oder vergleichst du nur die ersten 3 Zifferen von Links? Das wäre
Code:
SELECT * FROM tabelle WHERE left(cast(spalte AS VARCHAR(100)),3) = '277'
 
Danke ukulele

die Zahl kann verschieden lang sein mindestens 3 max bis zu 35 Zahlen. Im Minimum müssten die ersten 3 stimmen aber eben in meinem beispiel würden von links nach rechts die ersten 4 stimmen was der beste Treffer der Abfrage ergeben würde.... dies kann aber auch variieren da könnten auch die ersten 8 oder 11 stimmen.

Habe mir schon überlegt ob ich ein Script erstellen soll mit einer Schleife wo die eingegeben Zahl solange verkürzt bis 0 oder erster Treffer der Abfrage. Eine direkte SQL Abfrage wäre aber sicherlich eine schnellere Variante mit weniger Fehleranfälligkeit.$

Vielen Dank....

Andi
 
Werbung:
Hm das ist knifflig. Mit MySQL fällt mir da kein eleganter Weg ein, ich würde Stelle für Stelle des Strings abgleichen und per CASE 0 und 1 in ein ORDER BY schreiben.
 
Zurück
Oben