我正在运行一个分类广告页面,我正在使用php的mysql。我的ads表是一个简化的形式,类似于:
ad id -> int
ad title -> text
ad description -> text
ad description -> text
ad type -> boolean (if 0 is a private add, if is 1 is abusiness ad)
ad op -> boolean if zero is a used item if 1 is a new item)
我想知道的是,在不打4个电话到数据库的情况下,获得私人和公共广告的数量,以及旧的和新的项目的数量,这是可能的吗?
现在我打了5个电话,因为我每页显示20个广告,我对数据库的电话是:
使用select*table….获取20个广告的数据。。。。限值1,20
使用num\u行计算私有添加的数量;
使用num\u行计算业务添加的数量;
使用num\u行计算已使用的加法数;
使用num\u行计算新添加的数量;
是否有一些方法可以做到同样的效果,但对数据库的调用较少?
1条答案
按热度按时间r1zk6ea11#
您可以使用将最后4个点合并到一个查询中
Count()
与If()
:另一种方法是使用
SUM()
函数IF()
:请注意
type
是一个保留关键字,所以我们需要在它周围使用反勾号(`)。