Mysql 返回错误值的SQL查询
我正在进行筛选搜索,以便我可以进行查询,但其和部分未向我返回正确的值,其返回正确的gpa结果,但未给出正确的学位检查结果,因为其返回所有记录未应用“BSC”筛选查询代码如下:Mysql 返回错误值的SQL查询,mysql,sql,Mysql,Sql,我正在进行筛选搜索,以便我可以进行查询,但其和部分未向我返回正确的值,其返回正确的gpa结果,但未给出正确的学位检查结果,因为其返回所有记录未应用“BSC”筛选查询代码如下: SELECT * FROM education WHERE gpa >= 2.10 OR gpa =0 AND degree = 'BSCS' OR degree = NULL 看起来您需要添加一些括号: SELECT * FROM education WHERE (gpa >= 2.10 OR gpa =0
SELECT *
FROM education
WHERE gpa >= 2.10
OR gpa =0
AND degree = 'BSCS'
OR degree = NULL
看起来您需要添加一些括号:
SELECT *
FROM education
WHERE (gpa >= 2.10 OR gpa =0)
AND (degree = 'BSCS' OR degree is NULL)
如果要展开WHERE
子句,可以使用:
SELECT *
FROM education
WHERE
(
(gpa >= 2.10 OR gpa =0)
AND (degree = 'BSCS' OR degree is NULL)
)
OR
(
(gpa is null or gpa ='')
or (degree is null or degree = '')
)
请尝试以下代码:
使用和/或条件时,请始终使用括号,以避免混淆。
另外,检查字段是否为null的最佳方法是,其中myField为null
SELECT *
FROM education
WHERE (gpa >= 2.10 OR gpa =0 )
AND (degree = 'BSCS' OR degree is NULL)
@Juhana没有明白你的意思吗?你的查询要求BSC学位的gpa>=2.10或零gpa,或者根本没有学位。因此,只要gpa>=2.10,您的查询就不关心程度。如何修改我的查询it用户不应用gpa或程度筛选器,sql应返回所有记录?如何修改我的查询it用户不应用gpa或程度筛选器,sql应返回所有记录?@JunaidAkhtar您可以根据需要扩展
WHERE
子句您想要返回的内容,请参阅我对样本的编辑它不起作用您的上一个示例如果我输入空值,它应该返回整个record@JunaidAkhtar你能用一些样本数据编辑你的OP,然后得到想要的结果吗?@JunaidAkhtar我的建议是发布一个新问题,包括你需要查询做的所有事情。您现在请求查询做一些与原始帖子不同的事情。@Junaid Akhtar如果您对解决方案满意,请接受/投票。我的答案不是重复,而是有人更新了代码。。。。哈哈