2017-12-29 26 views
0

ich habe Tabelle genannt Verträge in der Datenbank, diese Tabellenspalte namens Arbeitsplatz_idSuche nach genauen Zeichenfolge aus Spalte

Arbeitsplatz_id viele Ergebnis haben, kann es so aussehen:

133-134 -135

3126-3127-125

126-127-128

so will ich alle Daten bekommen, wo Arbeitsplatz_id = 126

so wie% ‚Ich bin mit‘

aber in diesem Fall, wenn ich für Arbeitsplatz_id = 3126 gesucht wird, die Informationen für alles haben 126 bekommen wie 3126 oder 4126 und so.

so, wie ich für genaue Shop-ID aus dieser Spalte suchen so, wenn ich für 126, ich suchte den Datensatz zu bekommen, wo Spalte genau 126

+2

Wenn Sie die Zeilen wünschen, wo die Id preceisely ist '126' LIKE – Plutonix

+0

nicht verwenden' so will ich alle Daten bekommen, wo Arbeitsplatz_id = 126', 'also verwende ich Wie% ''', Sie habe es schon, benutze die gleiche Aussage nicht. Was ist die wahre Frage ... – Codexer

+2

Die Wahl, viele shopId in der gleichen Spalte getrennt durch einen Bindestrich zu halten, ist auf vielen Ebenen falsch. Sie werden aus einem Grund relationale Datenbanksysteme genannt. – Steve

Antwort

2
Select * 
From YourTable 
Where charindex('-126-','-'+shop_id+'-')>0 
+0

erstens danken Sie ist eine angenehme Lösung, und ja, ich weiß, das ist falsch, aber der Kunde hat mich in letzter Minute gezwungen, dass er viele Geschäfte in einem Vertrag, und ich konnte die Loch-Datenbank für ihn nicht ändern.Ich habe mehr als 5 Monate an dem Projekt gearbeitet, ich kann es nicht von Grund auf wiederholen. –

+0

@RabeeaQabaha Happy es half. Ich habe viel schlimmere und viel hässlichere Strukturen geerbt :). –

4

You'r Frage enthalten ist nicht ganz klar, aber ich denke, Sie bedeuten th Arbeitsplatz_id mehr als eine ID enthält

Wenn ich Recht habe, Sie unter Abfrage benötigen:

select * 
from contacts 
where shop_id like '126-%' 
    or shop_id like '%-126' 
    or shop_id like '%-126-%' 
    or shop_id = '126' 

beachten Sie, dass dies nicht ein gutes Datenbank-Design ist.

Verwandte Themen