Php 查询返回3行的相同数据

Php 查询返回3行的相同数据,php,mysql,json,Php,Mysql,Json,我得到的第一、第二和第三个值相同。然后下一行给出了第一行第二列的结果 <?php require "db.php"; $sql = "select n_name, shortcut, IF(rank = 1>2, 2, shortcut) AS 1st, IF(rank = 1<2, shortcut, shortcut) AS 2nd, IF(rank = 3=3, 1, shortcut) as 3rd from team inner join nonspor

我得到的第一、第二和第三个值相同。然后下一行给出了第一行第二列的结果

<?php  
 require "db.php"; 
 $sql = "select n_name, shortcut, IF(rank = 1>2, 2, shortcut) AS 1st, IF(rank = 1<2, shortcut, shortcut) AS 2nd, 
 IF(rank = 3=3, 1, shortcut) as 3rd from team inner join nonsport on team.n_id = nonsport.n_id";                         

 $con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name); 

$result = mysqli_query($con,$sql);


 $response = array();

while($row=mysqli_fetch_array($result))
{
array_push($response, array("n_name"=>$row[0],"1st"=>$row[1], 
"2nd"=>$row[2], "3rd"=>$row[3]));

} 
echo json_encode (array("nresults"=>$response));



mysqli_close($con);

?>

我的预期产出是

例如。快捷方式有a、b、c,它们的等级为a=1b=2c=3

然后第一个=a,第二个=b,第三个=c

我得到的是

第一个=a,第二个=a,第三个=a

然后下一行显示

第一个=b,第二个=b,第三个=b

IF(rank = 1 > 2, 2, shortcut)
其解决方法如下:

  • 如果
    rank
    等于1,则
    rank=1
    为1,否则为0
  • 0或1是否可以大于2?没有
  • 因此,
    rank=1>2
    始终解析为false,并且
    IF
    的输出将是一个参数,即快捷方式

在这方面,

  • 如果秩为3,则
    rank=3
    为1,否则为0
  • rank=3
    (输出0或1)是否可以等于3?没有
  • 因此,
    rank=3=3
    总是返回false,因此输出总是第三个参数,即快捷方式
因此,为什么这三个函数都返回相同的值


关于您的预期输出,请编辑您的问题,添加示例数据和基于此的预期输出,以及完整的逻辑解释。

rank=1我刚刚尝试了sirOh,这就是if-else查询在php中的工作方式?我不知道。我只是把随机的东西放在那里,希望得到答案。Thanks@orange嗯,那不是PHP.Wtf哈哈,真的很失落。再次感谢
IF(rank = 1 < 2, shortcut, shortcut)
IF(rank = 3 = 3, 1, shortcut)