【问题标题】:Get Relational Items - Fastest获取关系项目 - 最快
【发布时间】:2011-09-07 09:13:56
【问题描述】:

我将字段中的关系项存储为逗号分隔的 ID,如下所示:

,4,12,8,16,198,

前导逗号和尾随逗号的原因是用于搜索LIKE '%,id,%'

我正在尝试编写一个引导函数来根据 ID 按 ID 的顺序检索所有这些项目。我的问题是检索这些行的最有效方法是什么?我想到的选项是:

  • 分解成数组,遍历数组并执行单独的选择查询(查询太多?)
  • 使用 IN() 进行选择(我认为这不会保持顺序?)
  • 选择相关表中的所有项目,然后根据 ID 从该数组中进行选择(好处可能是只有一个查询?)

也许应该提到我正在使用 PDO,所以我可以准备一次语句,然后针对不同的 ID 执行多次......虽然我不知道这对性能有多大影响。

任何帮助将不胜感激!

谢谢。

【问题讨论】:

    标签: php optimization pdo query-optimization relational-database


    【解决方案1】:

    我会去

    ORDER BY FIELD(`id`, 4, 12, 8, 16, 198)
    

    结合IN

    【讨论】:

    • 那是缺失的部分。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多