0 0

遇到一个MySql的奇怪问题10

一直以来不怎么用mysql,今天碰到一个问题:
create table tbl1(
	id int,
	v  int,
	v1 int,
	v2 int
);
insert into tbl1(id,v,v1,v2) values(1,0,0,0);

接着执行

update tbl1
   set v =v+1 ,v1= v+1, v2 = v+2
where id=1;


预想的结果是:
1,0,0,0 变成
1,1,1,2
可是执行结果却是:
1,1,2,3

只有调整成
update tbl1
   set v1= v+1, v2 = v+2,v =v+1,
where id=1;

才对了。

可是同样的语句,informix和sqlserver上set无论次序如何结果都是 1,1,1,2
难道mysql连这点东西都无法保障吗?
问题补充
魔力猫咪 写道
没你这么用的。不同的SQL分析程序会产生不同的执行顺序。等于你现在就假定了这3个赋值其会按照从左到右或者从右到左执行。产生了顺序依赖。
如果人家的SQL分析器改一下,你这个代码的计算就全乱了。SQL不是顺序执行的语言。


这种用法应该很常用,其实本意是引用该行数据的原始值,这里我为了说明问题简化处理了。
因为我们有个项目中的一条sql语句就是类似的用法,一直以来在oracle,mssqlserver,informix数据库上都能正常运行,但是移植到mysql时就发现结果不是预料的。
我对mysql不是很了解,但mysql与众不同只能说是mysql的问题,不能说是人皆醉我独醒吧。
2012年6月04日 16:23

1个答案 按时间排序 按投票排序

0 0

你都写了原因,还发问题区呀。

2012年6月06日 17:34

相关推荐

    MySQL数据库连接异常汇总(值得收藏)

    在Centos上部署项目发现一个奇怪的问题,数据库连接一直抛异常。于是花了两个小时搜了各种数据库连接异常导致的原因,最终问题得以解决。同时,把解决过程中搜集到的异常信息汇总一下,当大家遇到类似的问题时,给...

    linux下mysql数据库乱码问题

    找到正确的配置文件后,可以将其复制到一个适合的位置,如 `/etc/my.cnf`,并进行编辑。使用文本编辑器(如 `vi`)打开该文件,并添加或修改以下配置项: ```ini [mysqld] default-character-set=utf8 [client...

    深入ORACLE迁移到MYSQL的总结分析

    这两个星期里一直都在忙于一件事儿,就是数据库的迁移问题。没有做的时候感觉这是一件十分轻松的事儿,可是等到实实在在去做去实现的时候,自己...这里我也是在网上找了一个现成的工具:oracletomysql,它是只能为我们

    MySQL 5.7.14 net start mysql 服务无法启动-“NET HELPMSG 3534” 的奇怪问题

    MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),具有高性能、可靠性和易用性的特点。它通常被用于存储网页、网站应用的后端数据以及企业级的解决方案中。MySQL 5.7.14是该数据库软件的一个版本。在该版本...

    MySQL错误ERROR 1615 解决方法

    今天测试合服脚本的时候,遇到一个很奇怪的问题。Mysql报ERROR: ERROR 1615 (HY000): Prepared statement needs to be re-prepared 经过测试,发现不是合服脚本的问题。经过一番搜索。发现原来是mysql的变量值设置...

    MySQL查询全部数据集结果不一致问题解决方案

    在MySQL数据库中,查询数据的一致性至关重要,但有时可能会遇到一些奇怪的问题,例如在本例中,使用`SELECT *`和`SELECT`指定字段查询同一个表时,得到的结果记录数不一致。这种情况通常暗示着数据库可能存在某种...

    MySQL编码问题导致含中文字段无法进行删除操作

    在开发一个简单的Java Web应用接口,用于删除包含中文字段的数据库记录时,开发者遇到一个奇怪的现象:尽管接口没有返回错误,但实际的数据并没有被删除。开发者尝试在本地环境中使用相同的代码执行删除操作,发现...

    解决centos下MySQL登录1045问题

    但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录。 无法登陆一般就两个原因。第一,远程访问端口没开,第二个原因就是密码错误了(很奇怪,我们登录时的密码明明是正确的,但还是会提示密码错误,我...

    网页乱码问题的解决方案

    例如,在给定的部分内容中提到了使用MySQL和PHP时遇到的乱码问题,这主要涉及数据库连接和查询时的字符集设置。 #### 二、MySQL字符集管理 MySQL支持多种字符集,每种字符集都有其特定的应用场景。通过`SHOW ...

    Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合

    谁知坎坷颇多,故觉得有必要记录下来,一来为了备忘,二来...因为别人文章里言之凿凿顺利完成的安装,在笔者电脑里却就是无法运行,出的问题也是稀奇古怪,毫无道理可言。以下流程笔者走了不下10余次,其间磕磕碰碰、反

    Code-Collection:个人博客、解决方案、遇到的问题记录、代码片段、笔记

    古怪问题 古怪问题汇总 代码片段 图片预处理 mvvm 实现 dom 操作封装 剪切板操纵 mocha 在浏览器中测试 es6 代码 监听用户离开页面 监听页面是否可见 gulp 配置 kafka clickhouse elasticsearch mysql linux nginx ...

    数据结构兼容性检查 1.2

    如果您的论坛遇到一些奇怪的问题,可用本插件检查数据库结构,并作一定程度上的修复。 适应版本:Discuz 2.5 sp1 安装难易:简单 效率影响:无(后台插件) 资源占用:无(后台插件) 修改文件:无...

    php-fpm 占用CPU过高,100%的解决方法

    文章中提到了一个具体的案例:在部署了一个基于LNMP(Linux + Nginx + MySQL + PHP)架构的网站之后,原本运行平稳的服务器突然出现了CPU占用率飙升至100%的情况。进一步通过`top`命令观察,发现是php-fpm进程导致的...

    myeclipse10.7

    3. **插件冲突**:如果遇到奇怪的问题,尝试禁用部分插件看是否能解决问题。 4. **界面卡顿**:调整显示设置,降低UI元素复杂度。 5. **更新失败**:检查网络连接状态,或者手动下载更新文件进行安装。 通过上述...

Global site tag (gtag.js) - Google Analytics