我是一个结构不良的SQLite数据库。结构看起来像这样:
ID | USERID | KEY | VALUE
键列包含用户的一些数据名称,这意味着我有多个具有相同USERID的行。我想要做的是过滤它,以便得到以下输出:
浏览整个数据库并搜索与某个键匹配的最高值。例如:
ID | USERID | KEY | VALUE
1 | banana | abc12 | 3
2 | apple | def34 | 4
3 | pineapple | abc12 | 5
如果找到KEY列中的单词(例如abc12
),我只想运行检查。因此,如果abc12
是列键的值,则应检查它的值是否高于最后一个最高值。最后,在运行我的查询后,我应该得到以下结果:
ID:3(因为该值为5,它是abc12
关键字中最高的一个)。
我期待你的想法。
答案 0 :(得分:0)
编辑:whoa jk由于某种原因我认为你想要第二高的值。
你可以使用
SELECT ID
FROM [TABLE]
WHERE KEY = [VALUE]
ORDER BY VALUE DESC
LIMIT 1
(老回答)
喜欢的东西
SELECT VALUE
FROM [TABLE]
WHERE KEY LIKE "%:value:%
(我假设喜欢,因为你说它只是想要包含,而不是完全匹配)
ORDER BY VALUE DESC
限制1,1
`
LIMIT 1,1
将选择第二行(第一行,偏移1)。如果只有一行匹配,则不确定如何失败。