但是你的这个需求比较特殊,你可以使用系统功能产生一个1、2、3....这有点自增列(例如id),你需要列值实际上是一个计算字段(2^(id-1)):2的id-1次方
MYSQL可以使用移位运算,例如:
SELECT id,2<<(id-1) FROM tab
mysql 本身这种数据库就有一定的模糊性。而且我没发现没有什么数据类型窥探的API。--------------------------------------------------------------------------------------------------------------
select 0.89296-0.89288
以上这种是作为变长数据进行处理的。
如果你不信就设计一个表,用varchar存数字,用他们来计算,基本没有舍入误差,理由很简单,那是变长数据。
-----------------------------------------------------------------
select
t1.money as 1st,
t2.money as 2nd,
(t1.money - t2.money) as 3rd
from EURGBP t1
inner join y2p t2
on t1.date = t2.date
and t1.time = t2.time
where t1.date = '11/6/7' and t1.time = '23:56'
----
如果那个sql是以double进行运算,而double[n] 这种是定长数据,如果在有限的8字节存储空间中进行大范围存储,高精度是不可能的,它采用的科学计数法存储方式。
科学计数法采用的是有效数字。而不是高精度类型
---------
总结:你可以认为select 0.89296-0.89288 这种方式采用的是变长DECIMAL(M,D)进行运算。
DECIMAL属于高精度类型。
而你的sql是采用double进行的科学计数法运算。
--------
Look at: DECIMAL在mysql中是变长数据类型。
-----
LZ水平不错,入我团队吧!---->数据库聚贤庄 O(∩_∩)O哈哈~
关系运算包括四种:投影、选择、连接、除。在任何一种数据库管理系统中(包括MySQL),投影对应于SELECT子句,选择对应于WHERE子句,连接对应于JOIN子句,但除没有直接的对应语句,需要根据题目的实际含义书写复杂的SQL,通常都会包含子查询。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)