SQL group_concat, почему я получаю значения в неправильном порядке?

Почему я получаю свои значения в неправильном порядке при использовании group_concat и разборе их в json?

Вот мой код

$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"}

0

Решение

использование order by при выборе из таблицы, где вы получаете a_shortcut, прежде чем сделать inner join,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector