Я хочу написать PHP-код, который будет циклически проходить по строке «итоги» в dB_table таким образом, чтобы, если «итого» было равно или больше 70, он отображал A. Если он находится между 69 и 55, он отображал B иначе это покажет C.
У меня есть следующие строки кода, но он учитывает только первые и последние утверждения.
$sql = "SELECT total, field1, field2, field3, CASE
WHEN total >=70 THEN 'A'
WHEN total BETWEEN 69 AND 55 THEN 'B'
ELSE 'C'
END AS 'field4'
FROM db_table
WHERE user_name = '" . $user_name . "' OR fullname = '" . $user_name . "';";
$result_of_login_check = $this->db_connection->query($sql);
Приведенный выше код отображает «A» от 70 и выше. Он пренебрегает средним CASE и отображает «C» из 69 & ниже.
Как можно достичь моей цели?
просто используйте те же операторы сравнения, которые были у вас до того, как они могут использовать индексы, если они у вас есть.
CASE
WHEN total >= 70 THEN 'A'
WHEN total >= 55 AND total < 70 THEN 'B'
ELSE 'C'
END AS field4
BETWEEN 69 AND 55
не будет работать, потому что MySQL имеет значение от 1 до бесконечности 🙂
Попробуйте изменить это на BETWEEN 55 AND 69
,