小编She*_*iad的帖子

我需要mysql表中最接近的较小值

我正在为我的mmorpg制作基于经验点的排名系统.假设我有2张桌子,

  • table1:username - exp
  • table2:rankname - exp

每个等级都需要特定数量的exp来升级.现在让我们说用户名:我有550 exp,而在table2我们有:

  • 排名1 - 200
  • rank2 - 600

现在我想要php函数通过检查我的exp对表2 exp我仍然在rank1虽然我的exp不是exp列中的值.我尽了最大努力,得到了:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
boolean given in... line 6
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

function expToRank($userexp)
{
   global $mysqli;
   $sql="SELECT TOP 1 *
         FROM table2
         WHERE ABS(".$userexp."-exp) =
         ( SELECT MIN( ABS(".$userexp."-exp)) from table2 )";
   $result=mysqli_query($mysqli,$sql);
   $rankarray=mysqli_fetch_array($result,MYSQLI_ASSOC);
   $rankname=$rankarray["rankname"];
   return $rankname;
}
Run Code Online (Sandbox Code Playgroud)

提示:2 exp列是BIGINT(60).

php mysql sql select function

1
推荐指数
1
解决办法
128
查看次数

将两列合并为一列,但不是同一单元格,并将其分类

我有两个表,用于级别(管理员,主持人,代理等)的“表A”和用于用户的“表B”,其中一列表示引用“表A”的级别ID。我希望存储过程将用户名归类,但结果必须在这样的一列中:

那是我的两张桌子:

TableA
+---------------------------+
|Level ID     |Level Name   |
+---------------------------+
|1            |Admin        |
+---------------------------+
|2            |Moderator    |
+---------------------------+
|3            |Agent        |
+---------------------------+
Run Code Online (Sandbox Code Playgroud)
TableB
+---------------------------+
|Username     |Level ID     |
+---------------------------+
|John         |1            |
+---------------------------+
|Sam          |2            |
+---------------------------+
|Tommy        |2            |
+---------------------------+
|Tony         |3            |
+---------------------------+
|Patrick      |3            |
+---------------------------+
|Jimmy        |3            |
+---------------------------+
|Tod          |3            |
+---------------------------+
Run Code Online (Sandbox Code Playgroud)

这就是我想要查询结果的方式:

+-------------+
|Admin        |
+-------------+
|  John       |
+-------------+
|             |
+-------------+
|Moderator    |
+-------------+
|  Sam        |
+-------------+
|  Tommy      |
+-------------+ …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures

0
推荐指数
1
解决办法
44
查看次数

标签 统计

sql ×2

function ×1

mysql ×1

php ×1

select ×1

sql-server ×1

stored-procedures ×1