1月 082017
 

  有的时候我们需要实现随机获取某些数据记录的功能,比如在一套题库内随机生成一组题目给学生进行考试,正常情况下我们可能会考虑通过代码实现,但是使用sqlite中提供的RANDOM()函数就可以轻松实现这样的功能 。要将Random()函数放在order by后面以达到随机排序的功能,示例代码如下:

  limit 1表示只取一条记录

  现在功能实现了,但是这样效率比较低,我们对sql语句改造如下:

  如果只想取其中的一条记录也可以把where id in替换成where id=,如下所示:

  如果大家还有效率更高的写法,欢迎留言。

  另外在MySQL中也有一个RAND()函数可以实现类似功能,在MSSQL中可以通过order by GUID来实现

8月 092016
 

  Sqlite中增加字段的语法和其他的数据库一样使用Alter关键字,具体例子如下:

  但是要注意的是,sqlite中不支持一次增加多列,所以如果你要增加多列的话就要执行多次alter table语句

10月 292014
 

  对于获取数据库中的记录数量的方法,其实应该是很简单的问题,之所以发文把此方法写出来,是因为有一些需要地方需要注意,避免其他人再在此问题上浪费时间。

方法一:

  这是一个很普通的方法,通过sql语句获取数量并赋给一个sql别名字段,然后通过这个别名来获取记录的数量,但是需要注意的是必须要有cursor.moveToFirst(),这个函数,因为rawQuery执行完成后返回的Cursor不是定位到第一条记录的,而是定位到第一条记录之前,所以必须要moveToFirst让记录定位一下才能读取数据,同样地获取其他的数据的时候也要在其之前调用此函数。

  如果是读取多条记录的时候我们一般会用

方法二:

  此方法需要注意的是,sql语句select的时候最好不要select *这样会把所有字段的数据都读出来,浪费内存,效率低。