4

我正在使用 sequel pro 从几个表中选择数据。我需要做两件事,似乎需要某种循环。我从来没有在sql中使用过任何形式的迭代,也找不到初学者级别的资源来学习。

任何人都可以建议如何执行以下两项任务,或者建议一个教程,我可以在其中学习基础知识并从那里弄清楚:

任务 1:浏览版本历史表,找到在给定日期应用的给定 id 的相关历史记录,并从该记录中选择值。历史表的形式为:

  • id, Item_id, version-created_at, value

例如

  • 1, 123, 2014-05-01, 754
  • 2, 456, 2014-05-10, 333
  • 3, 123, 2014-05-27, 709

我需要找到项目 123 在日期 2014-05-25 的值(即我需要找到记录 id=1 和值 = 754,因为这是在我的目标日期之前创建的项目 123 的最新版本.

所以我想我需要遍历表格以查找第 123 项并比较这些记录的日期。但我不知道如何处理从一个记录移动到下一个记录并比较它们的迭代。

任务 2: 遍历包含多个产品 ID 和匹配产品价格的字符串的单个文本字段,并找到价格最低的产品 ID。字符串的形式是一系列价格“p”和id“i”的对,以随机顺序排列,如下所示:

“-:p:99.8:i:3-:p:59.0:i:5-:p:109.8:i:18-:p:82.45:i:46”

在这个例子中,我需要找到“5”,即最低价格为 59 美元的产品的 ID。

所以我想我需要逐步检查每个 p/i 集,可能是通过计算字符数,但我不知道如何迭代和比较以找到最优惠的价格。

一点帮助会大有帮助。

谢谢。

4

1 回答 1

0

对于第一个答案,您可以执行以下操作:-

SELECT value FROM history where id = 123 AND version-created_at = '2014-05-01';

对于另一项任务,您必须在前端而不是后端尝试此操作。

于 2014-05-29T06:52:56.210 回答