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;

复制代码


你可能感兴趣的:(Android)