根据关键字获得最高价值

时间:2014-05-12 21:43:42

标签: mysql sql sqlite

我是一个结构不良的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关键字中最高的一个)。

我期待你的想法。

1 个答案:

答案 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)。如果只有一行匹配,则不确定如何失败。