SQLite 的 where 条件语句中数值使用16进制表示的问题

SuperOS 2015-07-25 12:08:21
SQLite中执行下列语句:

DROP TABLE IF EXISTS xxx_pool;
CREATE TABLE xxx_pool (test_id BIGINT);
INSERT INTO xxx_pool VALUES (-1);

然后执行下面的统计查询(注意test_id的值使用了16进制表示法):

SELECT COUNT(*) FROM xxx_pool where test_id =-1; -- 这里返回 1,和期望的一致
SELECT COUNT(*) FROM xxx_pool where test_id =0xFFFFFFFFFFFFFFFF; ; -- 这里返回 0,为什么不是1?

第一种,在条件 where test_id =-1 中,-1是用10进制表示的,结果返回是1,这个正确。
问题是:为什么第二种在条件 where test_id =0xFFFFFFFFFFFFFFFF 中,-1用16进制表示(0xFFFFFFFFFFFFFFFF )的,结果返回就是0了,为什么,怎么不是返回1呢?
而同样的查询语句,在MySQL和MSSQL中就没问题,返回都是1。
...全文
365 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧