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字符变成逻辑运算符了.
  • 相关阅读:
    Hibernate 查询语句
    application 网站计数器
    Hibernate 配置
    常用正则表达式
    字符串的系列操作
    输入内容验证
    大小写字母验证
    验证非零的正整数
    验证数字输入
    Java面向对象之多态
  • 原文地址:https://www.cnblogs.com/sinkzephyr/p/862616.html
Copyright © 2011-2022 走看看