如何根据另一个特定值使用 WHERE 和 AND 从表中提取特定值?

  • 本文关键字:AND 提取 何根 另一个 WHERE php mysqli
  • 更新时间 :
  • 英文 :


我在 SELECT 语句中使用 WHERE 和 AND 命令提取特定数据时遇到问题。此问题如下:

我有一张名为"solo_leaderboard"的表。正是在这个表中,我存储了游戏俱乐部中所有游戏的高分值。我想保留此表中的所有高分,因为为每个游戏创建一个单独的表似乎很荒谬。我使用此表填充显示每个游戏的前 5 名分数的 HTML 页面。一个人一次只能在每场比赛的前 5 名中获得一个分数。到目前为止,这部分工作得很好。

我的主要问题是我的代码只从整个表格中提取一个人的高分,并且只有在适用于所述游戏时才显示它。例如,一个人在世嘉 Dreamcast 的《疯狂出租车》中获得了 3111 分的最高分,因此他们在雅达利高速公路中的 18 分的高分不会显示在高速公路列表中,即使他们在高速公路列表中排名第二。

我不希望一个人多次出现在同一个排行榜上,但我确实希望他们出现在其他排行榜上。

这是我的表架构和相应的 php 代码:

  • ID - int(10(
  • 游戏系统 - 瓦尔查尔(30(
  • 游戏 - 瓦尔查尔(30(
  • 姓名 - 瓦尔查尔(40(
  • 分数 - 国际(10(
  • 日期 - 日期
  • 年级 - 瓦尔查尔(5(
  • 谁是 - 枚举
$result = mysqli_query($conn,"SELECT * FROM solo_leaderboard x WHERE game 
LIKE '%Freeway%' AND score >= ALL
(SELECT score FROM solo_leaderboard y
WHERE y.name=x.name
AND score>0) ORDER BY score DESC LIMIT 5");

在我的嵌套 SELECT 语句末尾添加了"AND 游戏,就像'%Freeway%'一样,我有效地解决了这个问题。

$result = mysqli_query($conn,"SELECT * FROM solo_leaderboard x WHERE game LIKE '%Freeway%' AND score >= ALL    (SELECT score FROM solo_leaderboard y
WHERE y.name=x.name
AND score>0 AND game LIKE '%Freeway%') ORDER BY score DESC LIMIT 5");

相关内容

  • 没有找到相关文章

最新更新