sqlite中的group_concat()在插入时不返回实际数据

时间:2013-05-15 18:05:09

标签: android sqlite cordova

sqlite manager中的查询返回的不是axact数据:这是我的CREATE表语句: sqlite manager TABLE creation 这是查询:

CREATE TABLE user_prayers ('id' INTEGER PRIMARY KEY  AUTOINCREMENT NOT NULL,'user_id' INTEGER,'date' DATETIME,'status' INTEGER, "", "namazname" TEXT)

在DB中插入:

INSERT INTO user_prayers (user_id,date,status,namazname) VALUES(1,'2013-01-05',1,"FAJR"),('1','2013-01-05',0,"ZOHAR"),('1','2013-01-05',1,"ASR"),('1','2013-01-05',0,"maghrib"),('1','2013-01-05',1,"ISHA");

这里成功插入的是快照:请忘记空列 insertion in DB 现在我需要“STATUS”的值与其“NAMAZNAME”按照相同的插入顺序。因此使用此查询但未能获得结果:

SELECT date,group_concat(status,namazname)  FROM user_prayers WHERE user_id ='1' GROUP BY date 

这是结果的快照:  select query result 这是不准确但我想要这样的“状态”及其“namazname”的结果   1 FAJR 0 ZOHAR 1 ASR 0 MAGHRIB 1 ISHA
在我的查询中只选择4个namazname,同时按照相同的插入顺序选择状态请让我知道我做错了什么,以获得“namazname”帮助我

1 个答案:

答案 0 :(得分:1)

要同时获取statusnamazname值,您必须连接这些字符串(group_concat的第二个参数是分隔符):

SELECT date, group_concat(status || ' ' || namazname, ' ')
FROM user_prayers
WHERE user_id = '1'
GROUP BY date

但是,SQLite的group_concat函数不允许指定订单;它总是以未定义的顺序返回值。