我有几个整数(x,y),其中0 < y&lt; = x&lt; = 6.
我需要将它们存储在一列中,名为z。
我希望有三个函数F1,F2,F3来解决这个问题:
Z = F1(X,Y)
X = F2(z)的
y = F3(z)
我的第一个方法:
F1:10 * y + x
F2:(z-z%10)/ 10
F3:z%10
我必须在一个包含数百万行的表的WHERE
子句中使用它
还有更好的主意吗?
答案 0 :(得分:1)
我会用:
F1 : z=10*x+y
F2 : x=z/10
F3 : y=z-F2*10
也许,如果你拿16个基础,它会内在优化?我会尝试256的基数 - 因此一个数字位于一个字节。
F1 : z=256*x+y
F3 : y=z&255 // that is definitely faster
F2 : x=z/256
由于SQL服务器没有&gt;&gt;或&lt;&lt;操作员,这是结束,我担心。