Laravel中MySQL分步查询异常:多module_id仅返回首个模块数据求助
问题解决:Laravel查询多module_id数据失败
你当前的查询逻辑存在错误:使用where('module_id', '=', [1, 2, 3, 4, 5, 6, 7])时,Laravel无法正确解析数组形式的匹配值,这会导致SQL查询只尝试匹配数组的第一个元素(或者将数组转换为无效字符串),因此仅返回module_id=1的数据。
正确的实现方式是使用whereIn方法,该方法专门用于处理字段值在指定集合中的查询场景:
$words = Word::whereIn('module_id', [1, 2, 3, 4, 5, 6, 7]) ->offset(290)->take(30)->get();
whereIn会生成对应的SQL语句:WHERE module_id IN (1, 2, 3, 4, 5, 6, 7),这样就能正确筛选出所有指定module_id的数据,再配合offset和take实现分页获取结果。
内容的提问来源于stack exchange,提问作者EduardRST
相关产品推荐
相关产品推荐

