我在phpmyadmin中有一个表,其中包含'val'
列和'num'
列。这两列的数字范围从0到10.使用PHP我想在phpmyadmin中访问此表,当我的' val' = 10,我想得到数字'紧接在之前和之后的价值' val' = 10值。所以在我想要的图像中,当val = 10时,num = 9和4,而对于第二个val = 10,num = 4和10。
$s = $mysqli->query("SELECT `Num` FROM `user_entries` WHERE `Val` = 10");
我还不确定下一步要添加什么,因为我还没有发现能够执行此操作的任何功能。我怎么能这样做?
答案 0 :(得分:1)
我不确定你可以像你的桌子那样做(你实际上可以在PHP中这样做,但是这可能会在你想要的一天,但不是后一天...(见{ {3}}))。
我建议有一个专栏,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
。
您可能需要了解如何使用它,希望它有所帮助。
答案 1 :(得分:0)
您的查询应该是这样的
"SELECT `Num` FROM `user_entries` WHERE `Val` = '10' ";