Articles of sql

Android MediaStore获取音乐文件的不同文件夹

寻找从Android MediaStore获取音乐文件的文件夹路径以获取输入目录路径的方法。 所以实际上问题是关于如何对MediaStore进行正确的查询。 这是一个例子。 我目前的代码: String dirPath=”/mnt/sdcard/Music/”; String selection =MediaStore.Audio.Media.DATA +” like ?”; String[] projection = {MediaStore.Audio.Media.DATA}; String[] selectionArgs={dirPath+”%”}; Cursor cursor = this.managedQuery( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, null); List songs = new ArrayList(); while(cursor.moveToNext()) songs.add(cursor.getString(0)); 因此,我们将在songs List smth中有: /mnt/sdcard/Music/song1.mp3 /mnt/sdcard/Music/song2.mp3 /mnt/sdcard/Music/FolderWithSongs/song3.mp3 /mnt/sdcard/Music/AnotherFolderWithSongs/song4.mp3 /mnt/sdcard/Music/AndOneMoreFolder/song5.mp3 /mnt/sdcard/Music/AndOneMoreFolder/song6.mp3 /mnt/sdcard/Music/AndOneMoreFolder/song7.mp3 /mnt/sdcard/Music/AndOneMoreFolder/SomeFolder/song8.mp3 /mnt/sdcard/Music/AndOneMoreFolder/SomeFolder/song9.mp3 我真正想要的是 – 从dirPath获取这样的DISTINCT一级嵌套路径列表,如下所示: /mnt/sdcard/Music/FolderWithSongs/ /mnt/sdcard/Music/AnotherFolderWithSongs/ /mnt/sdcard/Music/AndOneMoreFolder/ 如果这里将是当前文件夹文件 – […]

SimpleDateFormat中的日期字符串解析不正确

我正在尝试将UTC中的字符串格式化日期转换为日期对象,这会导致转换关闭几分钟。 SimpleDateFormat fullDateFormater = new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSSSSS”, Locale.US); fullDateFormater.setTimeZone(TimeZone.getTimeZone(“UTC”)); 在解析日期字符串之前 – 2014-07-07T18:24:23.788810 解析日期之后是Tue Jul 08 00:07:31 GMT+05:30 2014日Tue Jul 08 00:07:31 GMT+05:30 2014 正确的日期转换是Tue Jul 07 23:54:23 GMT+05:30 2014 转换时间差异大约为12-13分钟。 我观察到转换中10分钟的范围存在差异。 什么是错的?

如何用两个条件查询SQLite数据库?

我有一个关于员工的表,有3列,如下面的代码: db.execSQL(“CREATE TABLE ” + TABLE_NAME + ” (” + _ID + ” INTEGER PRIMARY KEY AUTOINCREMENT, ” + DEPT + ” TEXT NOT NULL,” + NAME + ” TEXT NOT NULL,” + CITY + ” TEXT NOT NULL);”); 现在我只想在DEPT和CITY(ei都是HCM City和Sales部门的员工)中展示员工。 如何查询才能获得它?

为什么不直接将android连接到数据库?

我看到很多人试图直接在SQL Server或MySql等数据库中连接Android设备,答案总是一样:使用Web服务。 为什么不直接将Android设备与数据库连接? 我正在使用我的Android应用程序的本地网络。

限制在Android中获取的记录(Sqlite数据库)

我正在尝试从收件箱,发送的项目和草稿中获取短信。 我想为我的列表视图做一个分页,因为我必须在页面/块中获取记录。 我不熟悉sqlite,这是我理解android用于存储数据的数据库。 有人能告诉我如何使用contentResolver.query限制我获取的记录数量? 还有什么方法可以将sqlite数据库文件拉到我的机器上并在本地浏览/查询它以试验或查看我机器上的数据? 还有其他更好的方法在android中实现分页吗? 谢谢

Android:获取列中的最高价值

我有一个指向内容的URL,我需要获得其中一列中包含的最高值。 是否有任何聚合函数可以实现,或者我必须手动执行此操作?

将一列更新为其他两列的总和

我需要用一列作为同一表中其他两列的总和来更新表的每一行 像这样的东西 UPDATE table1 SET table1.column1 =每行的sum(table1.column1 + table1.column2) 我努力了 This is working for me UPDATE table1 SET column1 =(SELECT SUM(column1 + column2) FROM table1 where rowid = 1) WHERE rowid = 1 所以我可以通过首先选择所有rowId迭代每个rowid来做到这一点 for( all rowid as i){ UPDATE table1 SET column1 =(SELECT SUM(column1 + column2) FROM table1 where rowid = i) WHERE rowid […]

Android SQLite – 除Strings之外的selectionArgs

我有一个包含BLOB列的表(它只有16个字节)。 我想运行SELECT * FROM myTable WHERE blobColumn = ?forms的查询 并将字节数组绑定到该列。 理想情况下,我可以说myDatabase.rawQuery(“SELECT * FROM myTable WHERE blobColumn = ?”, myByteArray)或其中的一些变体,但rawQuery函数只支持String参数 – 虽然看看Android源代码,但似乎是私有的方法包括bindBlob(int, byte[]) 。 当然,我可以运行查询SELECT * FROM myTable WHERE blobColumn = x’CAFE1234CAFE1234CAFE1234CAFE1234′ ,但有没有办法不需要将blob转换为字符串?

什么是MINI_THUMB_MAGIC以及如何使用它?

背景 我注意到MediaStore.Images.ImageColumns的一个奇怪的列叫做“ MINI_THUMB_MAGIC ”。 文档说的只是: 迷你拇指id。 types:INTEGER 常数值:“mini_thumb_magic” 这个问题 我的猜测是这个字段与MediaStore.Images.Thumbnails有关。 这是对的吗 ? 如果没有,这是什么以及如何使用它? 如果它是正确的,我还有其他相关的问题: 它是原始的迷你尺寸图像吗? 它是使用相同的宽高比还是对它进行中心裁剪? 为什么“MICRO”的大小是方形(96 x 96),“MINI”的大小是非方形矩形(512 x 384)? 你如何使用它? 我的猜测是它是通过使用“ THUMB_DATA ”完成的,这是一个blob,所以你这样使用它,但是如果你已经拥有这个字段,那么使用“ getThumbnail ”的目的是什么? 如果方向值不是0,它会获得旋转的缩略图吗? 意思是如果我想展示它,我不需要旋转图像? 是否可以与缩略图一起查询图像? 也许使用内连接? 它适用于所有Android设备和版本吗? 为什么它甚至被称为“魔术”? 是因为它也适用于video(由于某些原因,音乐不存在,例如,它可能是专辑的封面照片)?

通过联系人查询最新的SMS消息组

与Message应用程序一样,第一个Activity显示按人员分组的最新SMS和计数。 示例我与Chris交换了50个文本,60个与Aline交换,40个与Ray交换…应用程序显示类似这样的内容 Chris (50) Hey how are you lately ? Aline (60) Let’s catch up Ray (40) Here is my number Ethan (1) I wrote a solution 我也是想做同样的事情。 我查询所有短信,然后我对它们进行排序。 至少它的效率是O(n)。 Cursor cur = this.getContentResolver().query(Uri.parse(“content://sms”), null, null, null, null); int count = cur.getCount(); // iterate all the SMS for (int i=1 ; i<=count ; i++){ // […]