簡體   English   中英

查詢返回 3 行的相同數據

[英]Query returns the same data for 3 rows

我在第 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;

然后第 1 個 = a,第 2 個 = b,第 3 個 = c;

我得到的是

第一個 = 一個,第二個 = 一個,第三個 = 一個;

然后下一行顯示

第 1 名 = b,第 2 名 = b,第 3 名 = b;

IF(rank = 1 > 2, 2, shortcut)

它解決如下:

  • 如果rank等於 1,則rank = 1為 1 否則為 0
  • 0 或 1 可以大於 2 嗎? 不。
  • 因此, rank = 1 > 2始終解析為 false,並且IF輸出將是口渴參數,即快捷方式。

IF(rank = 1 < 2, shortcut, shortcut)

這個總是返回快捷方式,因為第二個和第三個參數都是快捷方式。


IF(rank = 3 = 3, 1, shortcut)

在這方面,

  • 如果 rank 為 3,則rank = 3為 1,否則為 0。
  • rank = 3 (輸出 0 或 1)可以等於 3 嗎? 不。
  • 所以, rank = 3 = 3總是返回false,因此輸出總是第三個參數,即快捷方式。

因此,為什么所有三個函數都返回相同的值。

關於您的預期輸出,請編輯您的問題以添加示例數據和基於它的預期輸出以及邏輯的完整解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM