2011-01-08 5 views
0

In einem String-Array habe ich eine variable Anzahl von Werten. Wie sieht eine SQL-Anweisung aus, wenn ich alle Datensätze auswählen möchte, die den Array-Variablen entsprechen?SQL Select-Anweisung

wird es aussehen etwas dieses:

SELECT * FROM users WHERE username='"+ variable amount of elements in the String array like: Steven, Mike, John ..... +"'" 

Antwort

6

Sie könnten für die IN() Betreiber suchen.

SELECT * FROM users WHERE username IN ('chris', 'bob', 'bill');

1

This? (Offensichtlich die „OR username = 'xxx' ist für so viele Elemente wiederholt, wie Sie benötigen)

SELECT * FROM users WHERE username='item1' OR username='item2' OR username='item3' 
0

Jeder oben ein mir ist corrrect Es gibt mehrere Möglichkeiten, dies zu tun Eine einfache google-Suche nach ‚mysql-Anweisung Variablen‘ Ausbeute Tonnen Hilfe vollständigen Ergebnisse einschließlich:!

http://www.daniweb.com/forums/thread126895.html

Behandle einfach dein Array wie eine Standardvariable mit [einer Zahl] am Ende!

Zwei Tipps kommen aus dieser:

Google/Suchen Sie Ihr Problem zuerst in 9 von 10 jemand anderes das gleiche Problem und fand eine Arbeitslösung hatte!

Und darauf vorbereitet sein, die Antworten auf hier mit in 5 Minuten zu sehen. Dieses Forum ist wahrscheinlich das Schnellste, das du jemals sehen wirst. Das einzige, was die Community verlangsamt, ist Tippen! : P

Hoffe, das hilft,

Andy

0

Ein weiterer Ansatz, wenn auch weniger effizient, kann, wenn das Parsen verwendet werden neben den String problematisch ist ...

DECLARE @listOfNames VARCHAR(2000) 
SET @ListOfNames = 'JOE,KELLIE,PETE' 

SELECT * FROM users WHERE charindex(","+userName+",",","[email protected]+",") > 0 

Dieser Ansatz ist langsamer als eine der anderen Antworten, kann Sie jedoch davor bewahren, dynamisches SQL zu verwenden, um eine SQL-Abfrage basierend auf der Liste der übergebenen Namen zu erstellen ...