专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » accessupdate语句:Access Update 语句的怪现象 »正文

accessupdate语句:Access Update 语句的怪现象

来源: 发布时间:星期五, 2008年9月26日 浏览:140次 评论:0
今天在Access上写Update查询的时候一不小心将
updateemployeesetstatus=1,name=’sink’whereid=99
写成
updateemployeesetstatus=1andname=’sink’whereid=99
结果status字段被更新为0,
我大吃一惊,怎么可能是0呢,对于Access不是很熟的我十分不解.
叫来同事,他看了看说是Access把后面的andname=’sink’当成布尔语句了,
我茅塞顿开,经过讨论后把我的理解写下来:
这里加上括号有助理解
updateemployeesetstatus=(1and(name=’sink’))whereid=99
由于id为99的行里name不等于’sink’,所以name=’sink’的结果为false,
而true会被access理解为-1或1(),
(或者说-1或1在这里等同于true),
false则等同于0,(可能和C语言有关),
于是(name=’sink’)的结果是false,
1andfalse等同于trueandflase,
所以结果是false,再译成Int就是0了,最后才更新成0,
and字符变成逻辑运算符了.

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: