sql mod,值= 0

时间:2015-09-01 10:27:34

标签: mysql sql

SELECT id, MOD(MID(ssn,12,1),2) FROM `table`

这是我正在使用的查询。它的工作正常,但是:

MID(ssn,12,1)

为0,它将返回0.(不知道这是否正确,但这不是我的问题。)我需要它返回1.第10行和第11行应该列出为1。 fyi,ssn号是假的。这不是问题。我的国家将它们公之于众。不要提它

enter image description here

有人能帮帮我吗?我被卡住了。

http://i.stack.imgur.com/CKXKU.png

1 个答案:

答案 0 :(得分:0)

你得到的结果似乎是正确的:

MID(str, pos, len)
  

pos:一个整数,表示从哪里开始的位置(在str内)   提取应该开始。

所以在10行的情况下

1  9  4  6  0  2  2  0  -  8   1   0   2
1  2  3  4  5  6  7  8  9  10  11  12  13
                                   ^^

因此第12个元素为0,因此结果为。

您无法更改MOD功能的功能。但是,如果你想将它作为1而不是你得到的0返回,那么你可以这样尝试:

SELECT id, case when MID(ssn,12,1) = 0 then 'female'  
                when mod(MID(ssn,12,1),2)=1 then 'female' else 'male' 
           end
FROM `table`