group_concatを使用してjsonで解析すると、値が間違った順序で取得されるのはなぜですか?ここでSQL group_concatなぜ値が間違っていますか?
は、ここに私のコード
$sql = "select
e_name,
a_shortcut,
GROUP_CONCAT(case
when t_rank = 1 then a_shortcut
when t_rank = 2 then a_shortcut
when t_rank = 3 then a_shortcut
end separator ',') as group_con
from
team inner join event on team.EID = event.eid Where e_type = 'nonsport' group by event.eid";
$con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name);
$result = mysqli_query($con,$sql);
$response = array();
while($row=mysqli_fetch_array($result))
{
$ar=explode(',',$row['group_con']);
array_push($response, array("e_name"=>$row[0],"First"=>$ar[0],
"Second"=>$ar[1], "Third"=>$ar[2]));
}
echo json_encode (array("nresults"=>$response));
ですテーブルから選択するときにここで
くれ
{"nresults":[
{"e_name":"AAA","First":"3rd","Second":"2nd","Third":"1st"},
{"e_name":"BBB","First":"2nd","Second":"1st","Third":"3rd"}
を与えている出力は、私の予想出力
{"nresults":[
{"e_name":"AAA","First":"1st","Second":"2nd","Third":"3rd"},
{"e_name":"BBB","First":"1st","Second":"2nd","Third":"3rd"}
結果を整理して、必要な順序がわかるようにしてください。 –
はデータベースにありますか? – orange
'内部結合 'を行う前にa_shortcutを取得しているテーブルから' order by'を使用してください。 – ultrajohn