Mehrfachreferenzen in varchar-Feld
- 
					
					
					
					
 Ich habe folgende Tabelle: +----+------+------+ | id | name | refs | +----+------+------+ | 1 | 01 | 3,4 | | 2 | 02 | - | | 3 | 03 | - | | 4 | 04 | - | +----+------+------+Jetzt suche ich nach einer Möglichkeit alle Datensätze, welche in refs stehen aufzulisten, also z.b. sowas: SELECT * FROM `test3` `t1` left join `test3` `t2` on `t2`.`id` in (`t1`.`refs`) WHERE `t1`.`id` = 1Wenn ich es so schreibe geht es: SELECT * FROM `test3` `t1` left join `test3` `t2` on `t2`.`id` in (3,4) WHERE `t1`.`id` = 1was ja klar ist. Ich suche jetzt also eine Möglichkeit die Spalte `refs` in eine Form zu bringen, damit dies wie im 2. SQL gezeigt funktioniert. Jmd. eine Idee, oder eine Info, dass das evtl. gar nicht geht? PS: Ich weiß, dass man (Mehrfach-)Referenzen am Besten in einer eigenen Tabelle unterbringt, also bitte nicht dissen.  
 
- 
					
					
					
					
 Also wenn es denn unbedingt innerhalb eines SQLs sein muss, könnte ich mir ne Lösung mittels Stringverkettung vorstellen (sofern das deine DB unterstützt). 
 Also sowas in der Art:SELECT t1.* FROM test t1 LEFT JOIN test t2 ON t2.id = 1 WHERE -- Steht am Anfang t1.refs LIKE CONCATENATE(t2.id || ',%') OR -- Steht am Ende t1.refs LIKE CONCATENATE('%,' || t2.id) OR -- In der Mitte t1.refs LIKE CONCATENATE('%,' || t2.id || ',%') OR -- Einsam und allein t1.refs = t2.id
 
- 
					
					
					
					
 Ich musste es ein wenig anders schreiben, aber funzt. Irgendwie bin ich gerade da nicht drauf gekommen.  Danke.