关于iphone手机中sms.db文件中的数据解析

iPhone中的短信是以SQLite存储的(自己iPhone的系统是IOS 14.7.1)),用SQLite打开sms.db后就能看到表结构。我的需求如下:想从db中取出短信、发件号码、收到短信的时间。

自己摸索了下。部分小结如下

attachment: 短信附件信息表

chat : 含有发件人号码的

chat_message_join: chat 表和message表关联关系的表。

message: 主要存放短信的

通过分析建表语句,数据内容,得到如下结果。

message表中没有短信发件人的信息,这个信息是存在chat表里面的,而chat表和message表示通过chat_message_join表来关联的。

chat_message_join.message_id = message.rowid

chat_message_join.chat_id = chat.rowid

综上得到我想要的SQL语句

select text as 短信内容,jsrq as 接收时间,d.chat_identifier as 发件人 from (
select a.[text],datetime(substr(a.[date],1,9)+978307200,'unixepoch','localtime') as jsrq,rowid,chat_id from message a
left join chat_message_join b
on a.rowid = b.message_id)c
left join chat d
on c.chat_id = d.rowid
order by jsrq desc 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值