我试图使用以下查询来获取最新的日期结果.
Cursor cursor = mDb.query(DATABASE_TABLE, new String[] {KEY_DATE, KEY_REPS,
KEY_WEIGHT}, null, null, null, null, KEY_DATE + "DESC", ???);
Run Code Online (Sandbox Code Playgroud)
我需要使用limit参数(我相信)但它需要一个字符串.我尝试创建一个值为"1"的字符串,但这不起作用.其他我试过的东西"1"LIMIT 1"LIMIT 1"限制1"限制1"
此外,如果有人知道一个伟大的参考网站(除了这个),实际上向您展示了各种SQL查询(对于ANDROID),这将非常有帮助...
编辑我使用"1"得到的错误...也许限制不是我的问题?这是错误:android.database.sqlite.SQLiteException:没有这样的列:dateDESC :,同时编译:SELECT日期,重复,权重,FROM TEST ORDER BY dateDESC LIMIT 1
我想知道是否可以使用单个sqlite语句执行以下操作:
我的表看起来像这样:
|AnId|UserId|SomeDate|SomeData|
|123 |A |1/1/2010|aadsljvs|
| 87 |A |2/9/2010|asda fas|
|193 |A |2/4/2010|aadsljvs|
|927 |A |7/3/2010|aadsasdf|
|816 |B |1/1/2010|aa32973v|
|109 |B |7/5/2010|aaasfd10|
| 39 |B |1/3/2010|66699327|
...
Run Code Online (Sandbox Code Playgroud)
每行都有唯一的ID,用户ID,日期时间值和一些其他数据.
我想删除记录,以便根据SomeDate保留每个用户的最新10条记录.
在SQL Server中我会使用这样的东西:
delete d
from data d
inner join (
select UserId
, AnId
, row_number() over ( partition by UserId order by SomeDate desc )
as RowNum
from data
) ranked on d.AnId = ranked.AnId
where ranked.RowNum > 10
Run Code Online (Sandbox Code Playgroud)
有没有办法在sqlite中执行此操作?有几个具有相同SomeDate的记录的边缘情况并不特别担心,例如,如果我保留所有这些记录都没问题.
我是Android的新手,我的应用程序出错了.
我的应用做了以下事情:
1-用户可以选择从相机或图库导入图像.
2-所有图像都保存在数据库中,用户可以在另一个活动的列表视图中查看所有图像.
当我点击菜单栏图标传递到另一个活动,看到应用程序崩溃的所有图像,我在日志文件中收到以下错误:
11-06 15:16:17.199: E/AndroidRuntime(1789): FATAL EXCEPTION: main
11-06 15:16:17.199: E/AndroidRuntime(1789): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demodbimage/com.example.demodbimage.ImagesList}: java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
public class MainActivity extends ActionBarActivity {
private static int FROM_CAMERA = 1;
private static int FROM_GALLERY = 2;
ImageView background;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
background = (ImageView)findViewById(R.id.imgBackground);
DataBaseHandler db = new DataBaseHandler(this);
db.deleteAllContact();
} …Run Code Online (Sandbox Code Playgroud)