【发布时间】:2026-01-25 15:40:01
【问题描述】:
我有一个 MySQL 数据库,它包含一个表,其中包含 varbinary(20) 类型的列中的一些数据
不要问我为什么——它就是这样,我需要处理它。
此数据代表学生作为课程的一部分完成的模块数量。还有另一列称为标准,表示必须完成的模块数才能使课程标记为完成。当我计算完成课程的数量时,我想计算
completed = criteria AND completed != 0 ( ...oh and where the student is enrolled)
(因为在某些情况下标准是 0,所以我想跳过学生完成 0 个模块中的 0 个模块的任何课程)。
此外,由于某种原因,varbinary 列中 0 的值是 30(如果有人可以对此提供解释,那就太好了),因此在需要完成 3 个模块的情况下,条件列中的值将是 33
所以我的 SQL 查询看起来像这样 -
count(CASE WHEN (completed <> 30 AND (completed = criterias) AND enrolled = 'Yes') THEN 1 END) AS Total_Complete
但是,此计数似乎包括学生已完成 0 门课程中的 0 门的课程,因此我完成的 30 门课程似乎不起作用。
【问题讨论】:
-
啊,很好发现 - 是的,我使用的是 ,但我在问题标题中输入了错误的内容。我已更新问题以包含 运算符
标签: sql database comparison operators varbinary