gpt4 book ai didi

SQLite 按字符串中的最后一个字符对行进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:30 26 4
gpt4 key购买 nike

我正在为我的 Java 应用程序使用 sqlite 数据库,我有一个 varchar 列,其中包含由我的 Java 程序写入、读取和解析的一堆用户统计信息。我想要做的是有一个查询,可以按列中的最后一个统计数据对行进行排序。统计数据以逗号分隔,并且它们的长度各不相同,因此我需要一些可以获取文本的整个最后部分(即从最后一个逗号到数据末尾的文本)并对其进行排序的东西。这将很容易在我的 Java 应用程序中完成,但会占用更多资源,这就是为什么我想直接使用查询来完成。实际上,实际的列数据看起来像这样:

2015/7/4 17:24:38,[(data1, 1, 1436394735787)|(data2, 4, 1436394739288)], 5

我正在尝试根据最后一个 5 或其他可能的内容(它也可以是多位数字)对行进行排序。我尝试了几乎所有我能在互联网上找到的东西,但如果有很多问题是因为语法错误(即使我准确地复制了查询)或特定功能不存在的问题而且我不太确定这些错误的原因是什么。我对 MySQL 不是很熟悉,所以非常感谢一个简单的答案。

最佳答案

作为一个快速而 hacky 的解决方案(如果您有大量数据,性能会很低):

SELECT * FROM [tbl] ORDER BY CAST(SUBSTR([col], INSTR([col], '],') + 2) AS INTEGER);

但正如 Hayley 所建议的那样,要重新评估数据,您可以使用:

INSERT INTO [new-tbl]
SELECT SUBSTR(val, 0, c1),
SUBSTR(val, c1+1, c2-c1),
CAST(SUBSTR(val, c2+2) AS INTEGER),
[more-cols]
FROM (
SELECT INSTR([col], ',') AS c1,
INSTR([col], '],') AS c2,
[col] AS val,
[more-cols]
FROM [tbl]);

关于SQLite 按字符串中的最后一个字符对行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31306351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com