我有一个表,它充当自动排队的文件的保管箱。
我根据两件事来排序文件的优先级,日期和时间,以及是否已经过验证。
这是我的查询:
$dropcount = mysql_query("SELECT COUNT(*) FROM queue WHERE status=2 OR status=3
OR status=4 ORDER BY authorised DESC, timestamp DESC;");
我需要做的是计算用户当前文件前面有多少行,因为这将计算每一行,包括当前用户后面的文件。
谢谢你。
我的表如下所示:
http://tabbidesign.com/table.png
它的工作方式是如果将文件添加到队列中。但是,如果该文件被授权,它优先于未经验证的文件,这意味着它需要被计算在内,即使它是在一些未经验证的苍蝇之后添加的。
状态列说明文件是否为: - 正在处理
- 在 Dropbox 中排队
- 被用户取消
- 被管理员取消
编辑:好的@curtisdf's answer如果我做了以下工作:
$countauth =
SELECT COUNT(*)
FROM queue
WHERE (status=2 OR status=3 OR status=4)
AND authorised=1
AND timestamp < $timestamp
$countnorm =
SELECT COUNT(*)
FROM queue
WHERE (status=2 OR status=3 OR status=4)
AND authorised=0
AND timestamp < $timestamp
$actualcount = $countnorm + $countauth;
我如何将其合并到一个查询中,或者这不可能?
解决方案
SELECT COUNT(*)FROM queue WHERE (status=2 OR status=3 OR status=4)AND
timestamp < $timestamp OR authorised=1
由@curtisdf 发现。