计算MySQL表中给定值之前的行数

时间:2013-05-24 22:23:14

标签: php mysql count mysqli

我已经搜索了很长一段时间,但没有运气。对不起,如果在某个地方找不到我找不到的。

我基本上在MySQL表中有一个队列,我需要告诉人们使用PHP在队列中的数字。

现在,我已经有了这个,但它只是计算表中的行数:

$rowquery = "SELECT * FROM restaurant_guests ORDER BY ID UNTIL";
if ($stmt = $mysqli2->prepare($rowquery)) {

/* execute query */
$stmt->execute();

/* store result */
$stmt->store_result();

printf("%d", $stmt->num_rows - 1);

/* close statement */
$stmt->close();
}               

有人可以帮我指点正确的方向吗?非常感谢你提前! :)

2 个答案:

答案 0 :(得分:2)

如果ID字段是队列的基础(即ID越高,队列中的顺序越高),那么查询就像计算id值< =到用户id

SELECT count(id) FROM restaurant_guests WHERE id <= ?

此处?表示您要搜索的ID值。

答案 1 :(得分:1)

等一下。 ID是否自动递增? 如果只有ID较低的客户首先退出队列,那么 不应该只是给予:

answer = (the ID of user in question) - (lowest ID of the user in the queue) + 1

可以通过以下方式查询队列中用户的最低ID:

SELECT ID from restaurant_guests ORDER BY ID LIMIT 1

至少,与其他方法相比,这种方法将从DBMS传输恒定数量的数据。