私は、データベースからランキングを取得し、それをテーブルに入れて注文するコードを書いています。問題は私がいくつかのテーブルに参加していることと、トーナメントに参加する選手の中にはランキング表(私は選手のリストについては別のテーブルがある)でさえないことです。今のところ、ランクを持たないプレイヤーはヌル値を持ち、そのように表示されます。それは大丈夫かもしれませんが、私は選手を順位で注文する必要があります。 SQL IFステートメント
空の値を5000にするようなステートメントや、ランキングのないプレイヤーがテーブルの下部に表示されるのでしょうか?前もって感謝します!
マイコード:
SELECT
*,
p1.surname AS 'p1surname',
p1.name AS 'p1name',
p2.surname AS 'p2surname',
p2.name AS 'p2name',
m1.rank AS 'm1rank',
m2.rank AS 'm2rank'
CASE
WHEN m1rank is NULL
THEN m1rank = '5000'
END,
CASE
WHEN m2rank is NULL
THEN m2rank = '5000'
END
FROM
alists_lv lv
JOIN
players p1 ON lv.player1_id = p1.id
JOIN
players p2 ON lv.player2_id = p2.id
LEFT JOIN
womensranking m1 ON lv.player1_id = m1.id
LEFT JOIN
womensranking m2 ON lv.player2_id = m2.id
WHERE
tournament_id = '$id' AND p1.gender = 'F'
ORDER BY
(m1rank + m2rank)
互換性のないデータベースタグを削除しました。実際に使用しているデータベースにタグを付けてください。 –