商品表中,对应分类id的字段,可能是多个分类,比如下面:
id | cid | title |
---|---|---|
1 | 1,3,5 | 智能手机 |
对应的分类表如下:
id | cate_name | pid |
---|---|---|
1 | 数码 | 0 |
2 | 手机 | 1 |
3 | 平板 | 1 |
4 | 电脑 | 1 |
5 | 手持设备 | 1 |
从表中我们可以看出,智能手机这个商品同时属于数码,平板,手持设备这个三个分类,我前端请求的时候,传递一个“cid”值过来,它可能是单个分类id,也可能是多个,比如“cid”可能为1(数码),也可能为“1,2,3"(同时查询属于数码或手机或平板”的商品,就比如现在前端传过来的cid为“1,2,3”,该怎么写SQL呢
数据量小的话,可以
select * from goods where cid like '%$cid%'
这样的,然后额外查一下select * from categories where id in explode(',', $cid)
整体查询大致是这样的,我写的不是精确的SQL,楼主对应修改一下就行。