如何向mysql数据库表中添加一个变量字段?

如何向mysql数据库表中添加一个变量字段?,第1张

在select 语句中赋值给用户变量的语法是 @ var_name := value ,这里的var_name 是变量名,value是正检索的值.

1:变量可以用在以后语句中表达式可用的任何地方,例如where字句或者insert 语句中。

例如select @id :=cust_id from customers where cust_id='customer name';

delete from orders where cust_id = @id

2:变量的另一个用途是保存在一个auto_increment列的表中 插入新的一行后last_insert_id()的结果

select @last_id :=Last_INSERT_ID()

LAST_INSERT_ID()返回新的AUTO_INCREMENT列值,通过将其保存在变量中,你可以在之后的语句中多次引用该值。

即使发起其他的语句创建他们自身的atuo_increment值,从而改变了last_insert_id()返回的值

3:用户变量拥有单一的值,如果使用返回多行的语句来将值赋给一个变量,那么只有最后一行的值被赋给了该变量。

4:要将一个变量显示地设为一个特定值,使用set语句,set语法可以使用:=或者=来进行赋值

5:set也可以用来将一个select的结果赋给一个变量.

mysql不允许变量直接作为字段名或表名进行查询所以只能通过创建sql语句的方式实现SET @province = '地区'SET @strsql = concat('SELECT Fld1 AS ',@province,' FROM zgqy_2002_2')PREPARE stmt FROM @strsql EXECUTE stmt

一、局部变量

局部变量一般用在sql语句块中,比如存储过程的begin/end。其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了。

局部变量一般用declare来声明,可以使用default来说明默认值。

二、用户变量

用户变量的作用域要比局部变量要广。用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。

用户变量使用如下(这里我们无须使用declare关键字进行定义,可以直接这样使用):

select @变量名

对用户变量赋值有两种方式,一种是直接用"="号,另一种是用":="号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用":="方式,因为在select语句中,"="号被看作是比较 *** 作符。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存