Sqlite Android order by&;组_concat
我正在使用sqlite3:3.8.2和sqliteman(Ububuntu 14.04)来尝试在我的Android程序中需要的查询 Android版本4.0+ 我有3个表格用于获取数据 我发现这个问题: 当我在sqliteman中使用此查询时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
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