2014-11-24 42 views
0

當sqlite在語法上按列名。sqlite在語法上,按列

一張表。

_id seq(text) name(text) 
1  2   jone 
2  3   nike 
3  4   sara 

b表。

_id seqs(text) 
1 1,2,3,4 << comma text 

這裏是sql。

select group_concat(name) from a where seq in (select seqs from b where _id = '1') 

select group_concat(name) from a as t1 left join 
(select seqs from b where _id = '1') t2 on t1.seq in (t2.seqs) 

我期望下面的結果。 (!!!我想RESULT !!!)

result 
jone,nike,sara 

但是,

query result 
(blank) 

爲什麼不結果我想要什麼?

我能做些什麼來獲得你想要的結果?

ex) jone,nike,sara 

回答

1

無法搜索使用in逗號分隔字符串(當然,如果你使用動態SQL)。您可以使用like做到這一點:

select group_concat(name) 
from a 
where exists (select 1 from b where b._id = 1 and ',' || b.seqs || ',' like '%,' || a.seq || ',%') 

但是,你不應該在字符串中存儲的東西名單。 SQL具有存儲列表的這一偉大數據結構 - 事實上,整個語言都是圍繞它構建的。它被稱爲表格。您應該使用每個值具有一行的聯結表,而不是將整數值填充到字符串中。