正常update语法
//更改id=938的状态为1
update user_info set state='1' where id =938;
但是当我把where 写成了and后
update user_info set state='1' and id =938;
sql没有报错,并且还执行了,结果是表中除了id=938之外的数据,state全部变成了0
这是因为
mysql把第一个等号之后的看成一个整体,and 成了逻辑运算符
理解为:
update user_info set state=('1' && id =938 );
//1就是true,当id=938的时候,括号内整体是true,那么只有这一条会把state设置成1=true。
反之当id!=938的其他条数据都是false,会设置成0