1、“=”和“:=”的区别
mysql中“=”大多数表示的是等于的作用。只有使用update …set语句修改表中数据的时候,才体现的是赋值作用。
eg:update student set sname=“王八” where sid = 3;
“:=”表示的是赋值操作。
2、举例说明“=”和“:=”的作用
1)@num=@num+1
上图说明:
首先,第1行我们使用set @num=0;声明了一个用户变量,也就是你们在其它编程语言中常说的声明并初始化了一个变量,只不过不同编程语言的语法不同而已,你习惯了就好。记住,用户变量在当前窗口中的任何一个地方都可以使用。
接着,我们写了一个sql语句,在select后面我们写了@num=@num+1这样一句话,这句话表示的是等于的意思。当select每取出一行数据的时候,这里就会判断一次@num是否等于@num+1,很明显不等于呀!因此,每取出一条数据,显示的都是0(在mysql中false显示的是0)。
2)@num:=@num+1
上图说明:
首先,第1行我们仍然是使用set @num=0;声明了一个用户变量。
接着,我们写了一个sql语句,在select后面我们写了@num:=@num+1这样一句话,这句话表示的是赋值的意思。当select取出第一行数据的时候,就会将@num+1赋值给左边的@num,由于@num原始值等于0,因此“:=”左边的@num变为了1。当select取出第二行数据的时候,又会将@num+1赋值给左边的@num,由于此时@num等于1,经过赋值以后,“:=”左边的@num就变为了2,这样依次进行下去。