sqlite插入记录值为纯数字的字符串的问题以及sqlite语句中字符串的拼接

当向sqlite数据库中插入某条记录,而这条记录中的某个字段为纯数字的字符串时,在这条记录插入到数据库中时,这个字段的值就有一定几率会被转成数字Y_Y!!

例如下面的代码:

  1. String phone = "18801774974";
  2. String psw = "704430";
  3. String captcha = "025";
  4. ContentValues cv = new ContentValues();
  5. cv.put("phone",phone);
  6. cv.put("psw", psw);
  7. cv.put("captcha", captcha);
  8. getContentResolver().insert(uri, cv);

复制代码

插入到数据库之后,有一定几率会变成下图这样:



本来captcha字段是TEXT,而我传入的也是一个String,但是在实际插入到数据库中时,有一定几率,它会被当做数字来处理,然后前面的“0”就莫名其妙的丢失了#V_V#


遇到这样的情况,推荐的写法是下面这样,可以有效的避免数字字符串被当成数字处理:

  1. String phone = "18801774974";
  2. String psw = "704430";
  3. String captcha = "012";
  4. ContentValues cv = new ContentValues();
  5. cv.put("phone",phone);
  6. cv.put("psw", psw);
  7. cv.put("captcha", ""+captcha);
  8. getContentResolver().insert(uri, cv);

复制代码


顺便记录一条sqlite语句中涉及到字符串拼接的问题。

比如我的数据库里,现在已经被插入了上面描述的这样的“脏数据”

我想要修改一下这些记录,该怎么操作呢?

这时候就用到了字符串连接符——“||”

  1. update order_account set captcha=('0'||captcha) where length(captcha)=2;

复制代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值