您的位置:首页 > 数据库

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

2015-09-28 16:01 302 查看
当向sqlite数据库中插入某条记录,而这条记录中的某个字段为纯数字的字符串时,在这条记录插入到数据库中时,这个字段的值就有一定几率会被转成数字Y_Y!!
例如下面的代码:
String phone = "18801774974";
String psw = "704430";
String captcha = "025";

ContentValues cv = new ContentValues();
cv.put("phone",phone);
cv.put("psw", psw);
cv.put("captcha", captcha);
getContentResolver().insert(uri, cv);
复制代码
插入到数据库之后,有一定几率会变成下图这样:

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

遇到这样的情况,推荐的写法是下面这样,可以有效的避免数字字符串被当成数字处理:
String phone = "18801774974";
String psw = "704430";
String captcha = "012";

ContentValues cv = new ContentValues();
cv.put("phone",phone);
cv.put("psw", psw);
cv.put("captcha", ""+captcha);
getContentResolver().insert(uri, cv);
复制代码
顺便记录一条sqlite语句中涉及到字符串拼接的问题。
比如我的数据库里,现在已经被插入了上面描述的这样的“脏数据”
我想要修改一下这些记录,该怎么操作呢?
这时候就用到了字符串连接符——“||”
update order_account set captcha=('0'||captcha) where length(captcha)=2;
复制代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: