我目前正在使用以下内容来显示播放器列表
$sql = <<<SQL
SELECT pla.*, tea.*
FROM Players pla
INNER JOIN Teams tea USING (TeamID)
WHERE TeamID = '$TeamID'
SQL;
我现在想通过将它们分组到位置来安排这些结果。因此,例如所有守门员按字母顺序一起显示,然后是所有防守者。
我知道我可以
ORDER BY Position
然而,这会引发攻击者&#34;首先,我希望将这些职位展示为守门员,后卫,中场,攻击者。我需要做4个单独的查询吗?
答案 0 :(得分:2)
你可以做一个有条件的订单,那就是做你想做的事情
ORDER BY
CASE
WHEN position = "Goalkeepers" THEN 1
WHEN position = "Defenders" THEN 2
WHEN position = "Midfielders" THEN 3
WHEN position = "Attackers" THEN 4
ELSE 5
END,
name
我在最后添加了位置,按照位置
对结果进行分组后按升序排序