在MySQL里面update一条记录,语法都正确的,但记录并没有被更新...

问题语句

执行之前的记录是这样的:

执行之后的记录是这样的:

可以看到,实际上是有效果的:

why?

看起来,语法是完全没有问题,MySQL官方文档的update语法:

看到assignment_list的格式是以逗号分隔的col_name=value列表,一下子豁然开朗,开发同学想要的多字段更新语句应该这样写:

小结:在一条UPDATE语句中,如果要更新多个字段,字段间不能使用“AND”,而应该用逗号分隔。

原理:为什么使用“AND”分隔的时候,会出现owner_code=0的奇怪结果? 多次尝试之后发现:

('43212' and owner_name='李四')是一个逻辑表达式,而这里不难知道owner_name并不是‘李四'。因此,这个逻辑表达式的结果为false,false在MySQL中等价于0!

更多相关文章

  1. python list.sort()根据多个关键字排序的方法实现
  2. android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
  3. Android(安卓)初识Retrofit
  4. 【android】监听网络变化连续多个广播的问题解决
  5. android图片上传springMvc
  6. android 之simpleAdapter详解
  7. android sqlite 一次创建多个表
  8. Android(安卓)微博登录
  9. Android中读取电话本Contacts联系人的所有电话号信息

随机推荐

  1. Android屏幕适配攻略
  2. 如果你现在学Android---学习使用Kotlin进
  3. 修改Android Studio下的AVD的下载路径
  4. Android声音管理方法
  5. 从创建flutter到打包成aar,并运行,这之间踩
  6. EditText 焦点控制,进入界面时不弹出键盘
  7. 进入android项目组的第一天
  8. Android SDK Manager国内无法更新的解决
  9. Android自定义Transition动画
  10. Android Studio签名打包应用