我将关系项存储在字段中,作为逗号分隔的ID,如下所示:
,4,12,8,16,198,
前导和尾随逗号的原因是使用LIKE '%,id,%'
进行搜索
我正在尝试编写一个引导函数,以根据ID的顺序检索所有这些项。我的问题是,检索这些行最有效的方法是什么?我想到的选项是:
- 分解成数组,在数组上循环,并执行单独的选择查询(查询过多?)
- 一个选择使用IN()(我认为这不会维持秩序?)
- 选择相关表中的所有项目,然后根据ID从该数组中进行选择(好处可能是只有一个查询?)
也许应该提到的是,我正在使用PDO,所以我可以为不同的ID准备一次语句,然后执行几次。。。尽管我不知道这对性能的影响有多大。
如有任何帮助,我们将不胜感激!
谢谢。
我会选择
ORDER BY FIELD(`id`, 4, 12, 8, 16, 198)
与IN
组合