php - 我如何使用 CASE 语句循环遍历这些?

标签 php mysql case statements

我想编写一个 PHP 代码,它将循环遍历 dB_table 行“total”,如果“total”等于或大于 70,则显示 A。如果它在 69 到 55 之间,则显示 A。将显示 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 及以下的“C”。 如何才能实现我的目标?

最佳答案

只需使用之前使用的相同比较运算符即可利用索引(如果有的话)。

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

关于php - 我如何使用 CASE 语句循环遍历这些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26181739/

相关文章:

php - APC 缓存可以在以 fastcgi/fcgid 运行的多个 PHP 进程之间共享吗?

php - 从路径中删除 html 文件

php - mySQL 查询不存在

php - 按下按钮时尝试发送主键值以编辑数据

t-sql - 如何选择一个表中的所有行以及另一表中的任何匹配项(如果存在)?

javascript - 如何将测验结果保存到数据库中并以逗号分隔

php - 具有自定义值的 Paypal 结帐表单

mysql - 触发因素:足球队训练问题

SQL查询-如何增加员工的工资,不超过一定的工资限制

sql-server - SQL Server 显示某些行,并在 where 中包含大小写