我已经被这个问题困住了一段时间,并想知道这里是否有人知道我可能做错了什么。
我面临的问题是,以下查询向我发送0而不是-5,如果我删除" CAST"函数,我得到-05,所以看起来好像字符串-05没有被转换为-5,但是如果我替换整个" GROUP_CONCAT"功能由' -05'那么" CAST"功能DOES将-05转换为-5 ......我在这里缺少什么?
SELECT CAST(GROUP_CONCAT(if(FIELD_ID = 8, LEFT(VALUE,3), NULL)) as SIGNED INTEGER) as 'user_timezone'
FROM tn_cimy_uef_data
WHERE user_id = '58';
预期结果:-5
实际结果:0(不好)
SELECT GROUP_CONCAT(if(FIELD_ID = 8, LEFT(VALUE,3), NULL)) as 'user_timezone'
FROM tn_cimy_uef_data
WHERE user_id = '58';
预期结果:-05
实际结果:-05(好)
SELECT CAST('-05') as 'user_timezone'
FROM tn_cimy_uef_data
WHERE user_id = '58';
预期结果:-5
实际结果:-5(GOOD)
表格如下(table tn_cimy_uef_data):
ID USER_ID FIELD_ID VALUE
1 58 1 12121212
2 58 2 12121212
3 58 3 lorem ipsum
4 58 4 lorem ipsum
5 58 5 lorem ipsum
6 58 6 lorem ipsum
7 58 7 lorem ipsum
8 58 8 −05:00:00 -> America/Miami
9 58 9 lorem ipsum
10 58 10 12121212
我很感激,如果有人能在这个黑暗中揭开光芒xD
谢谢, P