重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql判断一行是否存在负数?可以。调用mysql的存储过程传参给smallint类型变量,总是出现out of range value的错误,刚开始用C数值转换方式的二进制位转换思...
成都创新互联是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,微信平台小程序开发,10年建站对成都户外休闲椅等多个行业,拥有多年的网站运维经验。
CREATE PROCEDURE testproc (IN v_i integer )
BEGIN
if v_i 0 then
select v_i as '负数';
else
select v_i as '正数';
end if;
END$$
delimiter ;
是nid的值超过int(11)的最大值了\
是超出了,mysql中int型数据的最大值是2147483647, 要想保存这么大的数据必须将数据类型改成改成bigint
以下参考
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
int
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
tinyint
从 0 到 255 的整型数据。存储大小为 1 字节。
mysql中是没有number数据类型的,对应的是int(整型)或者float(浮点型)等。
只要建表时没有选择unsigned(无符号型)选项,那么就是可以填入负数的。
如果表已经建好了,只需
ALTER
TABLE
指令将对应字段属性更改即可,参考SQL:
ALTER
TABLE
`user`
CHANGE
`regdate`
`regdate`
INT(
10
)
NOT
NULL
DEFAULT
'0'
看数据库中的字段的设计,一般设置为数值即可保存负值,也可以用文字段保存,取出后自行转换成数字即可。
mysql中正负的表示和数学表示是一样的。就是正数默认就是正的,负数是前面加1个减号就是负的。所以100表示正100。-100表示负100