mysql - 有没有办法在不使用多个 AND 的情况下将 WHERE 条件放在所有列上?
问题描述
假设我有一个包含多个主题列的学生表
我想选择在所有科目中得分高于 70 的学生的记录。
有没有办法在不使用“多个”AND条件的情况下这样做
例如,使用下面的查询我必须为每一列指定相同的 AND 条件
SELECT * FROM Student WHERE Maths > 70 AND Physics > 70 AND Chemistry > 70... 以此类推
我正在寻找类似的东西:
学生在哪里。* > 70
解决方案
本质上,您需要使用多个AND
条件。您可以使用以下方法对此进行屏蔽LEAST()
:
where least(physics, maths, chemistry) > 70
但是,您的基本问题是您的数据模型。而不是列,你应该有一个表,每个学生/科目一行:
Table: StudentSubjects
studentId Subject Grade
那么你就不需要单独提及每个主题了。
推荐阅读
- git - 获取 Git 提交,进行更改,然后重新提交
- kubernetes - 在 Windows server 2016 上使用 hyperv 驱动程序时 Minikube 启动错误 (Kubernetes)
- citrus-framework - Citrusframework - Java 操作 - 获取结果
- php - 带图像的输入类型复选框
- javascript - 从 HTML 运行 bash 脚本(Javascript 函数)
- python - 从谷歌搜索中提取结果数量
- python - Google colab TPU 被窃听或我做错了什么?
- assembly - ARM 汇编问题(没有足够的寄存器!)
- javascript - 如何修复“此页面无法正确加载谷歌地图”错误
- asp.net-mvc-5 - 调试指针未命中类库项目