Php 获得此人的分数,并与属于同一州的人进行比较
首先,我想用一个例子来说明我想要实现的目标。然后我将展示到目前为止编写的代码,但这些代码只处理问题的第一部分 在本例中,“名称”是Elsa。因此,最初,$name和$state分别等于'Elsa'和'Washington'Php 获得此人的分数,并与属于同一州的人进行比较,php,json,sql-order-by,Php,Json,Sql Order By,首先,我想用一个例子来说明我想要实现的目标。然后我将展示到目前为止编写的代码,但这些代码只处理问题的第一部分 在本例中,“名称”是Elsa。因此,最初,$name和$state分别等于'Elsa'和'Washington' $name = $_POST["name"]; ///Is equal to 'Elsa' $state = $_POST["state"]; ///Is equal to 'Washington' 表的名称为“table” +-----+------------+----
$name = $_POST["name"]; ///Is equal to 'Elsa'
$state = $_POST["state"]; ///Is equal to 'Washington'
表的名称为“table”
+-----+------------+--------+------------+------+
| ids | Player | score | State | Age |
+-----+------------+--------+------------+------+
| 1 | Mike | 1067 | Arizona | 30 |
| 2 | Lit | 970 | Washington | 25 |
| 3 | Sara Leman | 53 | California | 17 |
| 4 | Ted | 782 | Washington | 22 |
| 5 | Kralem | 589 | Florida | 36 |
| 6 | MrDud | 953 | Washington | 17 |
| 7 | Gregs | 752 | Arizona | 38 |
| 8 | Batman | 67 | New York | 16 |
| 9 | Fox | 673 | Washington | 34 |
| 10 | Hans | 500 | Washington | 23 |
| 11 | Elsa | 552 | Washington | 28 |
| 12 | Britta | 400 | Washington | 31 |
+-----+------------+--------+------------+------+
//一,。选择Elsa所在州即华盛顿的所有人
+-----+------------+--------+------------+
| ids | Player | score | State |
+-----+------------+--------+------------+
| 2 | Lit | 970 | Washington |
| 4 | Ted | 782 | Washington |
| 6 | MrDud | 953 | Washington |
| 9 | Fox | 673 | Washington |
| 10 | Hans | 500 | Washington |
| 11 | Elsa | 552 | Washington |
| 12 | Britta | 400 | Washington |
+-----+------------+--------+------------+
//二,。按分数排序
+-----+------------+--------+
| ids | Player | score |
+-----+------------+--------+
| 2 | Lit | 970 |
| 6 | MrDud | 953 |
| 4 | Ted | 782 |
| 9 | Fox | 673 |
| 11 | Elsa | 552 |
| 10 | Hans | 500 |
| 12 | Britta | 400 |
+-----+------------+--------+
//////这就是我的代码目前能走多远
//////这是我需要解决的最后一个棘手的部分
//3. 选择艾尔莎得分或更高的球员,这意味着布丽塔消失了
+-----+------------+--------+
| ids | Player | score |
+-----+------------+--------+
| 2 | Lit | 970 |
| 6 | MrDud | 953 |
| 4 | Ted | 782 |
| 9 | Fox | 673 |
| 11 | Elsa | 552 |
+-----+------------+--------+
//完成了。所以我真正感兴趣的是下表
+------------+--------+
| Player | score |
+------------+--------+
| Lit | 970 |
| MrDud | 953 |
| Ted | 782 |
| Fox | 673 |
| Elsa | 552 |
+------------+--------+
这是密码
如果您希望用户的分数低于Elsa,那么可以在查询中对其进行排序,如下所示
SELECT * FROM table WHERE state = ? AND score >= (SELECT score FROM table WHERE name = 'Elsa') ORDER BY score
当然,我建议你不要用这个名字来识别艾尔莎,而是把她的身份证以表格的形式发送给她,并用它来代替。name>='Elsa'应该不是name='Elsa'?你是对的@riggsfully我错放了>:谢谢注意。
select t1.Player,t1.score
from table t1,
(select state, score from table where state = ? and player = ? ) t
where t1.state=t.state and t1.score >= t.score
order by score desc