表image_tags:
id name
1 test1
2 test2
表image_taggables:
tag_id post_id
1 1
1 2
2 2
表image_posts:
id content title
1 c1 t1
2 c2 t2
有个搜索功能传入数组tag_ids[],返回post_id
1、如tag_ids[]=1 返回post_id 1,2
2、如tag_ids[]=1,2 返回post_id 2
如何查询出2这种情况,1这种用in ()可以查询
mysql 没有支持这个的,我觉得可以先查出来,代码里做下逻辑吧
你可以还是用in查询
比如说 in (1,2)
然后查出来还是
1 1
1 2
2 2
可以转换成 post_id,然后后面是它对应的tagid列表。
你只要判断哪个post_id 对应的tagid 列表同时包含了你传入的条件就可以了。
复杂一点的搜索一般会直接用es之类的了