我创建了两个表:
A (A.id,A.name)
B (B.A_ids)
B.A_ids
是表A.id
的字段,与,
连接。
现在我想查询name
A.id
所在的B.A_ids
,就像这样:
select A.name from A where A.id in(1,2,3) ;
但是,1,2,3
是来自B.A_ids
的查询。
答案 0 :(得分:1)
您可以使用以下内容:
SELECT A.* FROM A JOIN B
WHERE (
B.a_ids LIKE CONCAT(a.id,',%')
OR B.a_ids LIKE CONCAT('%,',a.id,',%')
OR B.a_ids LIKE CONCAT('%,',a.id)
OR B.a_ids = a.id
)
AND B.... = ...
表现可能不好。要获得更高效的设计,您应该在另一个表中存储一对多或多对多关系。
答案 1 :(得分:0)
我终于找到了一种使用find_in_set
的方法:
select distinct(b.id),
a.id,
a.name,
b.a_ids
from A
where find_in_set(a.id,b.a_ids);