SELECT id, MOD(MID(ssn,12,1),2) FROM `table`
这是我正在使用的查询。它的工作正常,但是:
MID(ssn,12,1)
为0,它将返回0.(不知道这是否正确,但这不是我的问题。)我需要它返回1.第10行和第11行应该列出为1。 fyi,ssn号是假的。这不是问题。我的国家将它们公之于众。不要提它
有人能帮帮我吗?我被卡住了。
答案 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`