Sqlite Android order by&;组_concat

Sqlite Android order by&;组_concat,android,sqlite,sql-order-by,group-concat,Android,Sqlite,Sql Order By,Group Concat,我正在使用sqlite3:3.8.2和sqliteman(Ububuntu 14.04)来尝试在我的Android程序中需要的查询 Android版本4.0+ 我有3个表格用于获取数据 我发现这个问题: 当我在sqliteman中使用此查询时 SELECT st.nome AS nome, st.cognome AS cognome, (SELECT ae.usercode AS usercode FROM assenze ae WHERE st.ultimo_evento = ae.fk_e

我正在使用sqlite3:3.8.2和sqliteman(Ububuntu 14.04)来尝试在我的Android程序中需要的查询

Android版本4.0+

我有3个表格用于获取数据

我发现这个问题:

当我在sqliteman中使用此查询时

SELECT st.nome
AS nome,
st.cognome
AS cognome, 
(SELECT ae.usercode
AS usercode
FROM assenze ae
WHERE st.ultimo_evento = ae.fk_evento)
AS ultimo_evento,
(SELECT 
    GROUP_CONCAT(
        ev.nome_evento, ", "
    )
    AS nome_evento 
    FROM eventi ev 
    WHERE ev.studente_id = st.id 
)
AS nome_evento
FROM studenti st 
WHERE st.classe_ident ='4297'
ORDER BY st.cognome
输出为:

EP、USC、R1、R、A
非常适合我

但是当我在android中使用它时,结果是

A、EP、R、R1、USC
对我没有好处

也似乎是此查询的相同结果(在sqliteman和android中执行):

可能是我的错,但我仍在努力寻找解决办法

谢谢

似乎它也可以在没有ev.data_ora_evento命令的情况下工作。但在安卓系统中仍然不起作用…

用户说:

连接元素的顺序是任意的

但是,您可以尝试通过对已排序的子查询执行group_concat()来强制执行订单:

SELECT GROUP_CONCAT(ev.nome_evento, ", ") AS nome_evento 
FROM (SELECT nome_evento
      FROM eventi
      WHERE studente_id = st.id
      ORDER BY whatever) AS ev

从中删除st.cognome的订单last@BSavaliya不幸的是,这不起作用(可能重复感谢链接,但如果它是任意的,为什么在sqliteman中可以工作,而在Android中不能?“任意”这意味着任何顺序都是正确的。不同的版本可以使用不同的优化。所以sqliteman给我正确的输出只是为了运气…谢谢,唯一的方法是当我从光标获取字符串时,根据需要更正顺序。。。
SELECT GROUP_CONCAT(ev.nome_evento, ", ") AS nome_evento 
FROM (SELECT nome_evento
      FROM eventi
      WHERE studente_id = st.id
      ORDER BY whatever) AS ev