【问题标题】:getting started with loops and iteration in sequel prosequel pro 中的循环和迭代入门
【发布时间】:2014-07-18 12:54:44
【问题描述】:

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

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

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

  • id、Item_id、version-created_at、值

例如

  • 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 集,可能是通过计算字符数,但我不知道如何迭代和比较以找到最优惠的价格。

一点帮助会大有帮助。

谢谢。

【问题讨论】:

    标签: mysql iteration sequelpro


    【解决方案1】:

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

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

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

    【讨论】:

    • 抱歉,这不起作用。我无法指定创建日期等于什么,因为除了项目 123 之外还有其他项目的日期会有所不同。对于每个项目,我需要找到在给定日期发布的版本,即该项目编号的最新日期小于给定日期的版本。孤立地查看每一行是无法做到这一点的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2018-12-13
    相关资源
    最近更新 更多