-1+0=很大 本帖最后由 qidizi 于 2014-01-14 18:50:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 INSERT INTO `test` VALUES ('-1', '0');把这些单引号去掉。注意引号代表的不同数据类型含义。 这个问题不是插入数据有问题,而是这个计算为什么就简单的这样处理呢?看结果.:18446744073709551615按一般聪明的语言来说,对于这块的考虑是比较充足的,但是mysql却就简单的一个-1+0就出现问题?这也太说不过去了吧?不明白在什么实现问题上有困难?几个int相加还得考虑类型相同? 这是因为你定义字段为unsigned造成的 SELECT ('-1'+'0') as i 结果是-1SELECT ('-1'+0) as i 结果是 -1SELECT (''+0) as i 结果是0SELECT (''+ (-1) ) as i 结果是 -1 应该这样查询吧。select (cast(ui as signed) + i) as sum from test; select ( i+convert(ui,signed) ) as c from test这样写就正常了,看来mysql真的就是简单的操作内存相加了.SELECT CONVERT( 1 , UNSIGNED ) + convert(-1,signed)但这却是正常的. 关于get_mysql_driver_instance 我在想想.. 求mysql配置文件优化. 求一SQL语句 查询出问题了. 打包数据库 mysql用分组及排序查询后,limit就不好用了?? 求助select语句~~~~在线等~~ 新手,装了mysql后怎么配置?怎么打开数据表 mysql数据库 Mysql中使用sql_calc_found_rows()返回的行数步正确 腾讯晕数据库mysql有5.1 和5.5,我该选哪个
注意引号代表的不同数据类型含义。
按一般聪明的语言来说,对于这块的考虑是比较充足的,但是mysql却就简单的一个-1+0就出现问题?这也太说不过去了吧?不明白在什么实现问题上有困难?几个int相加还得考虑类型相同?
SELECT ('-1'+'0') as i 结果是-1
SELECT ('-1'+0) as i 结果是 -1
SELECT (''+0) as i 结果是0
SELECT (''+ (-1) ) as i 结果是 -1
这样写就正常了,看来mysql真的就是简单的操作内存相加了.
SELECT CONVERT( 1 , UNSIGNED ) + convert(-1,signed)
但这却是正常的.