SQLite:如何从拆分字符串中获取最大值

时间:2015-09-23 10:36:56

标签: sqlite

在SQLite3数据库中,我有一个表“ projects ”, id 字段由以下方式组成:

[user id]_[user's project id]

例如,用户ID = 45 ,以下是一些数据:

45_1
45_10
45_102
45_2
45_3
45_4
45_68
45_9

我需要获取项目ID的最大值,这是“_”分隔符后面的数字(示例中为 102 )。我怎样才能做到这一点?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

SELECT max(cast((substr(id, pos + 1) AS integer)) AS project_id
FROM (SELECT *, instr(id,'_') AS pos FROM projects);

答案 1 :(得分:-1)

select max(cast(replace(id, "45_", "") as integer)) from projects;

现在,我应该指出这并没有很好地利用SQL。为什么没有两个字段,所以你可以有适当的外键?它会让你的生活更轻松

其次,如果你不只有项目id = 45,你将需要使用CONCAT函数。但是我希望你能用上面的函数自己解决这个问题。