如何通过A CASE语句循环使用这些?

时间:2014-10-03 15:13:43

标签: php mysql case statements

我想写一个PHP代码,它将循环遍历dB_table行“total”,如果“total”等于或大于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);

以上代码显示70及以上的'A'。它忽略了中间CASE并从69&amp ;;中显示'C'。下面。 如何实现我的目标?

2 个答案:

答案 0 :(得分:0)

BETWEEN 69 AND 55无效,因为MySQL的计数从1到无穷大:)

尝试将其更改为BETWEEN 55 AND 69

答案 1 :(得分:0)

只要使用相同的比较运算符,就可以使用索引(如果有的话)。

CASE
    WHEN total >= 70 THEN 'A'
    WHEN total >= 55 AND total < 70 THEN 'B'
    ELSE 'C'
END AS field4