2016-04-07 6 views
1

Dieser Befehl zuweisen:Wie Wählen Sie verwenden Array in eine MySql variable Werke

SET @a = '1,2,3,4,5,6,7,8,9'; 
SELECT Id FROM MyTable2 WHERE find_in_set(Id, @a) 

würde ich gerne wissen, ob es möglich ist, eine SELECT statt '1,2,3,4,5,6,7,8,9' zu verwenden, weil ich es nicht in der Lage war zu tun.

Ich habe tryed:

SET @a = CONCAT_WS(',', (SELECT Id FROM MyTable1 WHERE Id < 10)); 

aber ich Fehler:

Subquery returns more than 1 row

Gibt es eine Möglichkeit, ich bin versucht zu tun, was?

+0

Ich kann nicht denken, warum Sie das tun möchten. – Strawberry

+0

@Strawberry Ich muss den Wert in 3 Abfragen verwenden, also wenn ich es in eine Variable habe, vermeide ich 3 Unterabfragen – genespos

+0

Hm, das ist keine sehr überzeugende Antwort. – Strawberry

Antwort

1

Versuchen Sie, diese Art und Weise:

SET @a = (SELECT GROUP_CONCAT(Id) FROM mytable WHERE Id < 10); 

Diese @a auf eine Zeichenfolge wie '1, 2, 3, ...' gesetzt wird.