在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 )。我怎样才能做到这一点?
提前谢谢。
答案 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函数。但是我希望你能用上面的函数自己解决这个问题。