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
相关文章
读者评论
发表评论 |