我们来看一下SQL变量实际应用场景。现在有这么一个表 t ,表结构如下:
time1 表示浏览日期,
time2 表示加购物车日期,
time3 表示下订单日期,
time4 表示收货日期。
这四个日期有什么关系呢?就是都有可能不相等,也有可能都相等,还有可能部分相等。如果我们想要看这四个日期都发生在20190801这一天的订单应该怎么看呢?
Sql代码可以这么写:
select order_idfrom twhere time1 = "2019-08-01" and time2 = "2019-08-01" and time3 = "2019-08-01" and time4 = "2019-08-01"
那如果现在老板又想要看一下这四个日期都发生在20190808这一天的订单,该怎么看呢?很简单,直接把上面代码中的日期改一下就可以了。如果老板还想别的,也直接改代码中的日期就可以,这样是可以达到目的,但是大家有没有想过,如果一段代码中这种需要改的地方过多,而且代码与代码不是挨在一块的时候,这个时候如果手动去查找并修改的话,很有可能漏掉或改错。
这个时候变量就该出场了,之前讲过,所谓的变量就是一个变化的量,是一个容器,在你可能要更改的地方放一个变量,而不是固定的值,这样每次你要更改的时候,只需要更改变量的值就可以,其他地方的变量也会跟着一起变,省时又省力,美滋滋。
那我们先来看一下 Mysql 数据库中怎么设置变量,以下是在 Mysql 中设置变量day的几种写法:
set @day = "2019-08-01";set @day := "2019-08-01";select @day := "2019-08-01";
注意,如果使用 select 关键词进行变量赋值时,不可以使用 = 号,因为会默认把它当作比较运算符,而不是赋值,但是用关键词 set 进行变量赋值时是可以直接用 = 号的。现在变量定义并且赋值好了,对于上面的代码我们就可以这么写了。
set @day = "2019-08-01";select order_idfrom twhere time1 = @day and time2 = @day and time3 = @day and time4 = @day
这样每次要什么日期的数据,只需要改变变量day的值就可以了。
我们再来看看Hql(Hive-sql)中的变量赋值怎么设置,变量赋值的时候也是用的关键词 set,在变量引用那里和 Mysql 稍有不同,需要多加一个参数 hiveconf。
set day = "2019-08-01";select order_idfrom twhere time1 = ${hiveconf:day} and time2 = ${hiveconf:day} and time3 = ${hiveconf:day} and time4 = ${hiveconf:day}
以上就是关于 Mysql 和 Hql 这两种数据库中变量的使用方法,变量的用法很常见,也确实很有用,大家一定要熟练掌握。
End.
爱数据网专栏作者:张俊红
作者介绍:一个数据科学路上的学习者、实践者、传播者
个人公众号:俊红的数据分析之路
本文为挖数网专栏作者原创文章,未经允许禁止转载,需要转载请微信联系授权(微信号:lovedata0520)
- 我的微信公众号
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论