有没有办法在不使用多个AND的情况下将WHERE条件放在所有列上?

时间:2019-04-09 10:40:43

标签: mysql sql

假设我有一个带有多个“主题”列的学生表

我想选择所有学科中得分都超过70的学生的记录。

是否有任何方法可以不使用“多个” AND条件

例如,使用下面的查询,我必须为每列指定相同的AND条件

选择*从学生的数学> 70 AND物理> 70 AND化学> 70 ...依此类推

我正在寻找类似的东西:

学生在哪里。*> 70

1 个答案:

答案 0 :(得分:4)

本质上,您需要使用多个AND条件。您可以使用LEAST()屏蔽它:

where least(physics, maths, chemistry) > 70

但是,您的基本问题是数据模型。而不是列,您应该有一个表格,每个学生/受试者一行:

 Table:  StudentSubjects
 studentId    Subject    Grade

然后,您无需单独提及每个主题。