如何选择具有条件记录id + 1的特定记录

时间:2016-04-26 10:22:32

标签: php mysql

目前在php中为现有系统创建搜索页面。数据来自一个具有不寻常的数据处理结构的表。

现有系统的示例快照,销售历史网页

enter image description here

我观察到,如果我们要查看它正在使用的表格,我们之前在销售历史网页上看到的数据来自1对行。

enter image description here

我们可以看到,如果我们要搜索 player_id 956(帮派)使用SQL查询,我们得到player_point_id 96834而不是96835。 在现有系统中,销售历史记录网页显示的是player_point_id 96835记录,但它也显示了收件人player_id 956(帮派)。似乎在player_point_id 96834找到了一对记录就像收件人一样,发件人在player_point_id找到了96835

让我们说例如搜索条件仅为player_id 956,让'说它找到了100条记录。它提出了一个问题,我需要查找它获得的player_point_id的下一条记录。

到目前为止,我试图在带有阵列的php上进行此操作,但似乎浪费了我的想法。这是否可以使用SQL查询在SQL中解决?如果没有,欢迎其他PHP想法。

2 个答案:

答案 0 :(得分:2)

我认为这应该有效。这将获得具有player_id 956的行和具有player_point_id的行大于那些的行。如果您只想检索第二行,则可以删除最后一行代码(从您的问题中确切地说明您实际想要查找的内容)。

SELECT t.column, 
       t.another_column 
FROM   table_name t 
WHERE  t.player_point_id IN (SELECT ( player_point_id + 1 ) 
                             FROM   table_name 
                             WHERE  player_id = '956') 
        OR player_id = '956'; 

答案 1 :(得分:0)

这可能会有所帮助:

//get current point id

$sql = "select player_point_id from table_name where player_id=$id";
$result=mysqli_query($conn,$sql) or die(mysqli_error($conn));
$player_details = mysqli_fetch_assoc($result);
$ppid = $player_details['player_point_id'];

$ppid += 1;
//get details from the next point id

$sql = "select operator_id,  kiyosuku_id from table_name where player_point_id=$ppid";
$result=mysqli_query($conn,$sql) or die(mysqli_error($conn));
$point_details = mysqli_fetch_assoc($result);
$operator_id = $point_details['operator_id']; //required answer
$kiyosuku_id = $point_details['kiyosuku_id']; //required answer

代码效率不高但肯定会有效。