zoukankan      html  css  js  c++  java
  • Access数据库 Update 语句的怪现象

    今天在Access上写Update查询的时候一不小心将
    update employee set  status=1, name = 'sink'  where id = 99
    写成
    update employee set  status=1 and name = 'sink'  where id = 99
    结果status字段被更新为 0,
    我大吃一惊,怎么可能是0呢,对于Access不是很熟的我十分不解.
    叫来同事,他看了看说是Access把后面的and name = 'sink' 当成布尔语句了,
    我茅塞顿开,经过讨论后把我的理解写下来:
    这里加上括号有助理解
    update employee set  status=(1 and (name = 'sink' ) )  where id = 99
    由于id为99的行里name 不等于'sink',所以 name = 'sink' 的结果为false ,
    而true会被access理解为-1或1(),
    (或者说-1或1在这里等同于true),
    false则等同于0,(可能和C语言有关),
    于是(name = 'sink' ) 的结果是false,
    1 and false 等同于 true and flase,
    所以结果是false,再译成Int就是0了,最后才更新成0,
    and字符变成逻辑运算符了.
  • 相关阅读:
    JS防抖和节流
    移动端屏幕适配
    vue、react对比
    HTTP缓存
    程序员必备技术网站
    W3C标准、表现与数据分离、web语义化
    VUE的响应式原理
    react更新渲染及渲染原理
    ubuntu下mysql的环境搭建及使用
    apktool反编译工具
  • 原文地址:https://www.cnblogs.com/sinkzephyr/p/862616.html
Copyright © 2011-2022 走看看