[英]Previous and next row in PHP
我在phpmyadmin中有一个带有'val'
列和'num'
列的表。 这两列的数字范围为0到10。使用PHP,我想在phpmyadmin中访问此表,当我的'val'= 10时,我想获取紧接在'val'之前和之后的'num'值。 10值。 所以在图像中我想得到当val = 10时,num = 9和4,对于第二个val = 10,num = 4和10。
$s = $mysqli->query("SELECT `Num` FROM `user_entries` WHERE `Val` = 10");
我不确定接下来要添加什么,因为我没有找到能够执行此操作的函数。 我怎样才能做到这一点?
我不确定您是否可以按照表的方式执行此操作(实际上您可能可以在PHP中执行此操作,但这可以按一天的方式工作,但不可以在..(请参阅此链接 )。 。
我建议根据自己的需要设置一个id
或sort
列,看起来像这样:
id Val Num
1 2 6
2 0 0
3 4 8
4 3 9
5 10 1
6 8 4
7 10 6
8 5 10
有了这个,我建议使用MySQL获得您想要的东西:
SELECT
IFNULL((SELECT f2.Num FROM user_entries f2 WHERE f2.id = f.id-1),-1) AS previous_Val,
IFNULL((SELECT f2.Num FROM user_entries f2 WHERE f2.id = f.id+1),-1) AS next_Val
FROM user_entries f
WHERE Val = 10
ORDER BY id
这将返回:
previous_Val next_Val
9 4
4 10
如果没有previous_Val或next_Val,它将返回-1
。
您可能需要查看如何使用它,希望对您有所帮助。
您的查询应该像这样
"SELECT `Num` FROM `user_entries` WHERE `Val` = '10' ";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.