- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个分类网站,用户可以搜索广告。
结果显示在页面顶部的三个选项卡中。这三个是“所有”、“私有(private)”和“公司”。每个选项卡都附加了一个 nr,表示在该选项卡中找到的广告的编号。
例如:
All Private Company
5 3 2
All
就是private+company的总和!
我正在使用 MySql 作为数据库。
我正在尝试找出一种方法来找出每个选项卡的这些“找到的广告数量”。
我有一种方法可以做到这一点,就像这样,但让我很头疼,因为它太乱了:
$query = "SELECT SQL_CACHE * FROM classified WHERE classified.classified_id=$id";
if ($adtypes=="Private"){
$query_priv_comp = "SELECT SQL_CACHE * FROM classified WHERE priv_comp='Company'";
}
else {
$query_priv_comp = "SELECT SQL_CACHE * FROM classified WHERE priv_comp='Private'";
}
switch ($adtypes){
case "Private":
$query.= " AND classified.priv_comp='Private'";
break;
case "Company":
$query.= " AND classified.priv_comp='Company'";
break;
}
$qry_result = mysql_query($query); // main query
$result_priv_comp = mysql_query($query_priv_comp); // second query
$num_priv_comp = mysql_num_rows($result_priv_comp);
if ($adtypes=="All"){
$num_total = mysql_num_rows($qry_result);
}
else if ($adtypes!="All"){
$num_total=mysql_num_rows($qry_result) + mysql_num_rows($result_priv_comp);
}
if ($adtypes=="Private"){
$num_private = $num_total - $num_priv_comp;
$num_company = $num_priv_comp;
}
else {
$num_company = $num_total - $num_priv_comp;
$num_private = $num_priv_comp;
}
你知道还有什么其他方法可以做到这一点吗?
谢谢
顺便说一句:我也需要这些行,以便向找到的广告的用户显示信息!
最佳答案
这完全取决于您的需求。如果您只需要计数,则相对容易:
SELECT count(*) count_all
, sum(if(priv_com = 'Private', 1, 0)) count_private
, sum(if(priv_com = 'Company', 1, 0)) count_company
FROM classified
WHERE classified.classified_id=$id
如果另一方面,您需要计数和行数据,您应该对数据和计数进行单独查询,或者使用技巧。假设你的表有一个 id 列,它是主键,你可以这样做:
SELECT count(*) count_all
, sum(if(priv_com = 'Private', 1, 0)) count_private
, sum(if(priv_com = 'Company', 1, 0)) count_company
, classified.*
FROM classified
WHERE classified.classified_id=$id
GROUP BY id -- group by on primary key
WITH ROLLUP
WITH ROLLUP
魔法将为您提供一个额外的行,其中包含整个查询的计数。唯一的障碍是您将收到这一行作为整个结果的最后一行,所以如果您想在数据之前报告计数,您将不得不将行数据缓存在一个 php 数组左右并处理它稍后构建页面。
关于php - 技巧问题;显示 'nr of results' 的 MySql 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310721/
我正在使用 nr 高达 128 的 io_submit(..., nr, ...),但我提交的请求通常较少。 根据手册IO_SUBMIT(2) ,这是合法的,但我想知道:为什么?此外,有没有一种方法可
我正在学习使用 awk 进行文件比较。 我找到了如下语法, awk 'NR==FNR{a[$1];next}$1 in a{print $1}' file1 file2 我不明白NR==FNR在这里面
性能上有什么实际差异吗? 它更快吗? (假设我在同一个程序中至少使用了 100 个案例,它会在速度方面提高我的程序吗?) 最佳答案 这个问题可能更适合 Software Engineering Sta
我对 python 和 pandas 相对陌生,所以我可能无法完全理解所有可能性,并且希望得到如何解决以下问题的提示: 我有一个df就像这个: Jan Feb Mar Apr i
我们在windows下安装MySQL时会出现Access denied for user 'root'@localhost'(using password:No)的问题,这个问题是因为你的机器上之前
我是数据库的初学者,我有以下内容:我需要展示那些有最多不正确学生的类(class)(所以那些还没有带书的人和那些迟于 date_to_return 带书的人) 表格类(class):类(class)代
我需要使用正则表达式来解析数据文件的特定行。我的匹配测试命令有效,我的特定行号测试命令有效,但是当我将它们放在一起时,我没有输出。 gawk 'NR==42 {print $0}' filename
我最近试用了 Google 的 seq2seq建立一个小型的 NMT 系统。我设法让一切正常运行,但我仍然想知道模型的轮数和训练步骤数之间的确切差异。 如果我没记错的话,一个 epoch 由多个训练步
是否可以将顶部的这三个函数合二为一,并且当我单击按钮滚动所有三个函数时,每个骰子仍然无法获得相同的随机数?澄清这些功能是当我点击单个骰子时的功能,而底部的功能是当我想同时滚动所有三个骰子时的功能!所有
我正在尝试制作一个程序,它从 X 个问题中随机挑选 10 个问题(目前随机编写了 14 个问题),而不会再次挑选相同的问题,但我已经在这个垃圾问题上被困了 4 个小时。 我的问题是“randomNum
在 numpy 中获取下一个信号值之前获取行的 nr 的有效方法是什么? 我有一个信号值列表 (-1, nan, 1),它看起来与下表类似,并且想获得另一个列表,其中包含行数 nr 值,直到下一个信号
我需要在我的 Fortran 90 代码中使用 MRQMIN 子例程。在这个子程序里面还有一些其他的模块nrtype.90 , nrutil.f90和 nr.f90 .我正在使用这些命令编译所有这些模
我正在运行以下命令,只要它们是第一个文件中的内容,它就可以很好地工作: awk -F, 'FNR==NR {a[tolower($1)]++; next} !a[tolower($1)]' OutSi
我正在做一些聚合以获得关于类别中有多少产品的一些统计数据。 经过一些管道后我归结为: [ { topCategory: "Computer", mainCategory: "S
我正在尝试使用 Android API 在 Samsung S20 (T-Mobile) 上检测 5G Nr 小区信息 CellIdentityNr https://developer.android
在过去的几个小时里,我一直在尝试用 awk 解决这个愚蠢的问题,但到目前为止还没有成功。我了解如何绘制每一行,例如: awk 'NR%2' file 而且我还了解如果一列在特定范围内如何打印基于列的文
苹果会在今年发布iPhone12,iPhone12(一些更高的设备类型)可以支持5G功能,我认为iPhone12应该是基于iOS14平台的,所以我研究了iOS14的API,但我们可以'找不到任何关于
嗨,我正在尝试使用 awk 命令找到正则表达式后打印 5 行。我有以下内容: line_start=$(awk '/regex/{print NR}' file) let line_end=$line
有人可以告诉我解决问题的最佳数据结构选择是什么吗@http://acm.timus.ru/problem.aspx?space=1&num=1027。 复制到这里供引用。 问题 A text of a
我们可以将 NR 传递给 awk 中的变量吗? 我有一个脚本是这样的: awk -v { blah blah.. .......... count-- pr
我是一名优秀的程序员,十分优秀!