我获得了第1,第2和第3的相同值。然后下一行给出了应该在第一行中假设的第二列中的结果。
<?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 = 1 b = 2 c = 3;
然后1st = a,2nd = b,3rd = c;
我得到的是什么
1st = a,2nd = a,3rd = a;
然后下一行显示
1st = b,2nd = b,3rd = b;
答案 0 :(得分:1)
IF(rank = 1 > 2, 2, shortcut)
它解决如下:
rank
等于1,则rank = 1
为1,否则为0 rank = 1 > 2
始终解析为false,IF
的输出将是口渴参数,即快捷方式。 IF(rank = 1 < 2, shortcut, shortcut)
这一个总是返回快捷方式,因为第二个和第三个参数都是快捷方式。
IF(rank = 3 = 3, 1, shortcut)
在此,
rank = 3
为1,否则为0. rank = 3
(输出0或1)可以等于3吗?没有。rank = 3 = 3
总是返回false,因此输出始终是第3个参数,即快捷方式。因此为什么这三个函数都返回相同的值。
关于您的预期输出,请编辑您的问题,根据它添加样本数据和预期输出以及逻辑的完整说明。