2 gjfvip123 gjfvip123 于 2017.01.14 02:25 提问

php mysql查询问题求解

假设数据库中有两个品牌的商品,品牌ID分别为:brandId 100,200。
brandId=100的商品id:pid范围是100到199;brandId=200商品id:pid范围是200到299,如何一次性查询出每个品牌的前5个商品的数据呢?我用limit只能查出某一个品牌的前5个,谁有好的方法嘛?

2个回答

q995245021
q995245021   2017.01.14 09:57

我觉得用in(100,200) limit 可能可以实现 你可以试试

baij1230
baij1230   2017.01.14 10:16

利用union all和limit5也可以实现

gjfvip123
gjfvip123 还有个问题,如何根据品牌Id,来选出后多少条数据,像我一个语句,我先查出了前5个数据,第二次查,我想把除了第一次查出的前5个数据全都显示出来,如何写呢?这就不能写between了吧,因为是由客户端发出的数据,不知道ID是100的还是200的
11 个月之前 回复
gjfvip123
gjfvip123 回复baij1230: 终于弄出来了,非常感谢!我是用$sql="select * from productList where pid between 100 and 104 UNION ALL select * from productList where pid between 200 and 204";和 $sql="select * from productList where pid NOT between 100 and 104 UNION ALL select * from productList where pid NOT between 200 and 204";做出来的。还有什么更简单语句吗
11 个月之前 回复
baij1230
baij1230 回复gjfvip123: 一张表也能用union all的,比如利用group by等等
11 个月之前 回复
gjfvip123
gjfvip123 不是两个表而是一个表
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!