mysql_一个经典的update语句错误

一个经典的update语句错误

 

使用update语句可以更新(修改)表中的数据。

 

update语句的语法为:

    UPDATE [LOW_PRIORITY] [IGNORE] tbl_name

    SET col_name1=expr1 [, col_name2=expr2 ...]

    [WHERE where_definition]

    [ORDER BY ...]

    [LIMIT row_count]

 

由“SET col_name1=expr1 [, col_name2=expr2 ...]”可知,更新多个列时,只需要使用单个set命令,每个=对之间用逗号分隔。

 

例如:

将玩家等级c_level小于20的所有角色的经验c_exp设置为10000,等级c_level设置为20,可用:

update t_char set c_exp=10000 , c_level = 20 where c_level < 20;

 

然而,在使用该语句时写成了:

 

update t_char set c_exp=10000 and c_level = 20 where c_level < 20;

 

语句可以执行成功,但语句将被解析为:

 

update t_char set c_exp= (10000 and c_level = 20) where c_level < 20;

 

即c_exp设置为(10000 and c_level = 20),一个布尔值,在此例中c_exp将被设置为0。

逻辑AND:当所有操作数均为非零值、并且不为NULL时,计算所得结果为  1 ,当一个或多个操作数为0 时,所得结果为 0 ,其余情况返回值为 NULL 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

signjing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值