首页 > 解决方案 > 如何在查询 Android Studio 中执行此操作?

问题描述

如何执行查询以获得此结果?

我想要select * from TABLE_NAME所有不同TAKEN_DATE_TIME的数据MED_ID

return db.query(true, TABLE_NAME, new String[] { MED_ID,HIS_ID,TAKEN_DATE_TIME,SCHEDULED_DATE_TIME,TAKEN,MED_NAME },
TAKEN_DATE_TIME, null, MED_ID, null, HIS_ID+" DESC" , null);

这是数据库中的数据。 这是数据库中的数据

标签: sqliteandroid-studio

解决方案


根据我想*从 TABLE_NAME 中选择每个 MED_ID 上具有不同 TAKEN_DATE_TIME 的所有数据

您似乎想要运行查询:-

SELECT * FROM hislist GROUP BY taken_datetime,med_id ORDER BY med_id;

使用SQLiteDatabase查询方法,您可以使用:-

return db.query(
    TABLE_NAME, /* FROM clause less FROM */
    null, /* all columns */
    null, /* selection i.e. WHERE clause less WHERE */
    null, /* bind  parameters */
    TAKEN_DATE_TIME + "," + MED_ID, /* GROUP BY clause less GROUP BY */
    null, /* HAVING clause less HAVING */
    null /* ORDER BY clause less ORDER BY */
);
  • 这会按 MED_ID 和 TAKEN_DATE_TIME 创建行组,因此将为每个 MED_ID 内的每个不同的 TAKEN_DATE_TIME 创建一个组。

例如,基于您的数据子集(在 MED_ID 中偶然具有相同的 TAKEN_DATE_TIME),上述结果会导致:-

在此处输入图像描述

但是,如果将 MED_ID 1的某些 TAKEN_DATE_TIME 值更改为:-

在此处输入图像描述

结果是 MED_ID 1将有 3 组不同的 TAKEN_DATE_TIME ,根据:-

在此处输入图像描述


推荐阅读