mysql查询语句中,当查询的条件中提交的某些字段值为空时,我要查询出表中所有的内容,怎么解决?

mysql查询语句中,当查询的条件中提交的某些字段值为空时,我要查询出表中所有的内容,怎么解决?,第1张

假设表为 t_1有两列为 col_1,col_2

查询条件v_col_1,v_col_2不知道有没有值

SELECT * FROM t_1

WHERE col_1 = (CASE WHEN v_col_1 IS NULL THEN col_1 ELSE v_col_1 END)

AND col_2 = (CASE WHEN v_col_2 IS NULL THEN col_2 ELSE v_col_2 END)

mysql之条件语句where和having的区别。当我们需要按条件对查询结果进行筛选,就需要条件语句WHERE和HAVING了。

WHERE: 直接对表中的字段进行限定,来筛选结果;

HAVING: 需要跟分组关键字GROUP BY 一起使用,通过对分组字段或分组计算函数进行限定,来筛选结果。

WHERE: 直接对表中的字段进行限定,来筛选结果;

WHERE特点:直接用表的字段对数据集进行筛选,如果涉及到关联查询从其他的表获取需要的信息,执行时也是通过WHERE条件进行筛选,用筛选后的比较小的数据集进行连接。

HAVING: 需要跟分组关键字GROUP BY 一起使用,通过对分组字段或分组计算函数进行限定,来筛选结果。

HAVING特点:首先我们要把所有的信息都准备好,包括从关联表中获取需要的信息,对数据集进行分组,形成一个包含所有需要的信息的数据集合。接着在通过HAVING条件的筛选,得到需要的数据。

1、涉及到关联,如果需要通过连接从关联表中获取需要的数据,WHERE是先筛选后连接,而HAVING是先连接后筛选。

2、在需要对数据进行分组统计的时候,HAVING可以完成WHERE不能完成的任务。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7340499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存